@witnet/solidity 2.2.8 → 2.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/contracts/Clonable.json +2 -2
- package/build/contracts/Context.json +1 -1
- package/build/contracts/Create3.json +2 -2
- package/build/contracts/ERC165.json +1 -1
- package/build/contracts/IERC165.json +1 -1
- package/build/contracts/IERC20.json +1 -1
- package/build/contracts/IERC2362.json +1 -1
- package/build/contracts/IFeeds.json +2 -2
- package/build/contracts/IWitnetConsumer.json +2 -2
- package/build/contracts/IWitnetFeeds.json +2 -2
- package/build/contracts/IWitnetFeedsAdmin.json +2 -2
- package/build/contracts/IWitnetOracle.json +2 -2
- package/build/contracts/IWitnetOracleEvents.json +2 -2
- package/build/contracts/IWitnetOracleReporter.json +2 -2
- package/build/contracts/IWitnetPriceFeeds.json +2 -2
- package/build/contracts/IWitnetPriceSolver.json +2 -2
- package/build/contracts/IWitnetPriceSolverDeployer.json +2 -2
- package/build/contracts/IWitnetRandomness.json +2 -2
- package/build/contracts/IWitnetRandomnessAdmin.json +2 -2
- package/build/contracts/IWitnetRandomnessEvents.json +2 -2
- package/build/contracts/IWitnetRequestBoardAdmin.json +2 -2
- package/build/contracts/IWitnetRequestBoardAdminACLs.json +2 -2
- package/build/contracts/IWitnetRequestBytecodes.json +2 -2
- package/build/contracts/IWitnetRequestFactory.json +2 -2
- package/build/contracts/Initializable.json +1 -1
- package/build/contracts/OVM_GasPriceOracle.json +2 -2
- package/build/contracts/Ownable.json +1 -1
- package/build/contracts/Ownable2Step.json +2 -2
- package/build/contracts/Payable.json +2 -2
- package/build/contracts/Proxiable.json +2 -2
- package/build/contracts/ReentrancyGuard.json +1 -1
- package/build/contracts/Slices.json +2 -2
- package/build/contracts/Upgradeable.json +2 -2
- package/build/contracts/UsingWitnet.json +2 -2
- package/build/contracts/UsingWitnetRandomness.json +2 -2
- package/build/contracts/UsingWitnetRequest.json +2 -2
- package/build/contracts/UsingWitnetRequestTemplate.json +2 -2
- package/build/contracts/Witnet.json +2 -2
- package/build/contracts/WitnetBuffer.json +2 -2
- package/build/contracts/WitnetCBOR.json +2 -2
- package/build/contracts/WitnetConsumer.json +2 -2
- package/build/contracts/WitnetDeployer.json +2 -2
- package/build/contracts/WitnetDeployerCfxCore.json +2 -2
- package/build/contracts/WitnetDeployerMeter.json +2 -2
- package/build/contracts/WitnetEncodingLib.json +2 -2
- package/build/contracts/WitnetErrorsLib.json +2 -2
- package/build/contracts/WitnetFeeds.json +2 -2
- package/build/contracts/WitnetMockedOracle.json +2 -2
- package/build/contracts/WitnetMockedPriceFeeds.json +2 -2
- package/build/contracts/WitnetMockedRandomness.json +2 -2
- package/build/contracts/WitnetMockedRequestBytecodes.json +2 -2
- package/build/contracts/WitnetMockedRequestFactory.json +2 -2
- package/build/contracts/WitnetOracle.json +2 -2
- package/build/contracts/WitnetOracleDataLib.json +2 -2
- package/build/contracts/WitnetOracleTrustableBase.json +2 -2
- package/build/contracts/WitnetOracleTrustableDefault.json +2 -2
- package/build/contracts/WitnetOracleTrustableObscuro.json +2 -2
- package/build/contracts/WitnetOracleTrustableOvm2.json +2 -2
- package/build/contracts/WitnetOracleTrustableReef.json +2 -2
- package/build/contracts/WitnetPriceFeeds.json +2 -2
- package/build/contracts/WitnetPriceFeedsData.json +2 -2
- package/build/contracts/WitnetPriceFeedsDefault.json +2 -2
- package/build/contracts/WitnetPriceFeedsLib.json +2 -2
- package/build/contracts/WitnetPriceSolverBase.json +2 -2
- package/build/contracts/WitnetProxy.json +2 -2
- package/build/contracts/WitnetRandomness.json +2 -2
- package/build/contracts/WitnetRandomnessRequestConsumer.json +2 -2
- package/build/contracts/WitnetRandomnessV2.json +2 -2
- package/build/contracts/WitnetRequest.json +2 -2
- package/build/contracts/WitnetRequestBytecodes.json +2 -2
- package/build/contracts/WitnetRequestBytecodesData.json +2 -2
- package/build/contracts/WitnetRequestBytecodesDefault.json +2 -2
- package/build/contracts/WitnetRequestBytecodesNoSha256.json +2 -2
- package/build/contracts/WitnetRequestConsumer.json +2 -2
- package/build/contracts/WitnetRequestFactory.json +2 -2
- package/build/contracts/WitnetRequestFactoryCfxCore.json +2 -2
- package/build/contracts/WitnetRequestFactoryData.json +2 -2
- package/build/contracts/WitnetRequestFactoryDefault.json +2 -2
- package/build/contracts/WitnetRequestTemplate.json +2 -2
- package/build/contracts/WitnetRequestTemplateConsumer.json +2 -2
- package/build/contracts/WitnetUpgradableBase.json +2 -2
- package/build/contracts/WitnetV2.json +2 -2
- package/package.json +1 -1
|
@@ -54018,7 +54018,7 @@
|
|
|
54018
54018
|
"sourceMap": "465:26763:38:-:0;;;653:10:28;617:46;;-1:-1:-1;;;936:76:38;;1172:323;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1367:11;1392;670:279:28;;;;;;;;;;;;;;;;;817:11;1312:10:38;493:29:10;661:196:8;;;;;;;;;;;;;-1:-1:-1;;;661:196:8;;;788:9;777:20;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;818:32:8;841:7;818:16;:32::i;:::-;807:43;;-1:-1:-1;;;;;;;1273:26:1;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:1;;1350:1;1322:31;;;830:51:84;803:18;;1322:31:1;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1250:4:83;1265:13;;1288:27;;;;1857:1:4;2061:7;:21;844:40:28::1;::::0;;;;910:32;;::::1;::::0;;::::1;::::0;894:48:::1;::::0;-1:-1:-1;;;;;;;;1475:13:38::2;;::::0;465:26763;;22399:120:64;22462:7;22488:24;22501:6;22509:2;22488:12;:24::i;:::-;22481:31;22399:120;-1:-1:-1;;22399:120:64:o;1437:153:79:-;1526:13;1519:20;;-1:-1:-1;;;;;;1519:20:79;;;1549:34;1574:8;1549:24;:34::i;:::-;1437:153;:::o;22525:402:64:-;22624:16;22676:2;22663:9;:15;;;;22656:23;;;;:::i;:::-;22713:9;22741;22725:25;;:6;:13;:25;:53;;22765:6;:13;22725:53;;;22753:9;22725:53;;;22713:65;;22797:7;22792:119;22815:4;22810:2;:9;22792:119;;;22889:2;22894:1;22889:6;22866;22873:2;22866:10;;;;;;;;:::i;:::-;;;;;;;22858:38;;22846:50;;;;;22821:5;;22792:119;;;;22689:232;22525:402;;;;:::o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:533:84:-;119:6;127;135;188:2;176:9;167:7;163:23;159:32;156:52;;;204:1;201;194:12;156:52;230:16;;-1:-1:-1;;;;;275:31:84;;265:42;;255:70;;321:1;318;311:12;255:70;394:2;379:18;;373:25;344:5;;-1:-1:-1;436:15:84;;429:23;417:36;;407:64;;467:1;464;457:12;407:64;490:7;480:17;;;537:2;526:9;522:18;516:25;506:35;;14:533;;;;;:::o;552:127::-;613:10;608:3;604:20;601:1;594:31;644:4;641:1;634:15;668:4;665:1;658:15;892:127;953:10;948:3;944:20;941:1;934:31;984:4;981:1;974:15;1008:4;1005:1;998:15;1024:127;1085:10;1080:3;1076:20;1073:1;1066:31;1116:4;1113:1;1106:15;1140:4;1137:1;1130:15;1024:127;465:26763:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
|
54019
54019
|
"deployedSourceMap": "465:26763:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1607:7:38;;-1:-1:-1;;;;;;1607:7:38;-1:-1:-1;;;1607:44:38;:91;;;;-1:-1:-1;1671:10:38;1693:4;1671:27;1607:91;1590:847;;;1723:15;1741:42;1779:2;1759:16;1766:8;1723:15;1759:16;:::i;:::-;-1:-1:-1;;;;;;1759:22:38;;;1741:10;:42::i;:::-;:49;;;-1:-1:-1;;;;;1741:49:38;;-1:-1:-1;1741:49:38;1804:114;;;;-1:-1:-1;;;1804:114:38;;552:2:84;1804:114:38;;;534:21:84;591:2;571:18;;;564:30;630:34;610:18;;;603:62;-1:-1:-1;;;681:18:84;;;674:32;723:19;;1804:114:38;;;;;;;;;1976:4;1970:11;2019:14;2016:1;2011:3;1998:36;2118:1;2115;2099:14;2094:3;2085:7;2078:5;2065:55;2149:16;2205:4;2202:1;2197:3;2182:28;2234:6;2261:28;;;;2332:4;2327:3;2320:17;2261:28;2282:4;2277:3;2270:17;1590:847;2383:43;;-1:-1:-1;;;2383:43:38;;955:2:84;2383:43:38;;;937:21:84;994:2;974:18;;;967:30;1033:34;1013:18;;;1006:62;-1:-1:-1;;;1084:18:84;;;1077:31;1125:19;;2383:43:38;753:397:84;1590:847:38;465:26763;7643:149;;;;;;;;;;-1:-1:-1;7643:149:38;;;;;:::i;:::-;;:::i;:::-;;;1687:25:84;;;1675:2;1660:18;7643:149:38;;;;;;;;5977:600;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;14766:2257::-;;;;;;;;;;-1:-1:-1;14766:2257:38;;;;;:::i;:::-;;:::i;17440:469::-;;;;;;;;;;-1:-1:-1;17440:469:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;10134:184::-;;;;;;:::i;:::-;;:::i;2866:1437::-;;;;;;;;;;-1:-1:-1;2866:1437:38;;;;;:::i;:::-;;:::i;1018:45::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9039:32:84;;;9021:51;;9009:2;8994:18;1018:45:38;8855:223:84;8575:207:38;;;;;;;;;;-1:-1:-1;8575:207:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9002:335::-;;;;;;;;;;-1:-1:-1;9002:335:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1433:75:83:-;;;;;;;;;;-1:-1:-1;1496:5:83;1433:75;;1748:47:28;;;;;;;;;;;;;;;1874:86:83;;;;;;;;;;-1:-1:-1;1942:11:83;1874:86;;;10483:14:84;;10476:22;10458:41;;10446:2;10431:18;1874:86:83;10318:187:84;2118:133:28;;;;;;;;;;;;;:::i;7996:165:38:-;;;;;;;;;;-1:-1:-1;7996:165:38;;;;;:::i;:::-;;:::i;400:56:8:-;;;;;;;;;;;;;;;;;;;;;;:::i;17271:159:38:-;;;;;;;;;;-1:-1:-1;17271:159:38;;;;;:::i;:::-;;:::i;:::-;;;11282:4:84;11270:17;;;11252:36;;11240:2;11225:18;17271:159:38;11110:184:84;4387:298:38;;;;;;;;;;-1:-1:-1;4387:298:38;;;;;:::i;:::-;;:::i;7213:157::-;;;;;;;;;;;;;:::i;:::-;;;;;;11697:4:84;11739:3;11728:9;11724:19;11716:27;;11789:4;11780:6;11774:13;11770:24;11759:9;11752:43;11863:4;11855;11847:6;11843:17;11837:24;11833:35;11826:4;11815:9;11811:20;11804:65;11916:4;11908:6;11904:17;11898:24;-1:-1:-1;;;;;12015:2:84;12001:12;11997:21;11990:4;11979:9;11975:20;11968:51;12087:2;12079:4;12071:6;12067:17;12061:24;12057:33;12050:4;12039:9;12035:20;12028:63;12159:2;12151:4;12143:6;12139:17;12133:24;12129:33;12122:4;12111:9;12107:20;12100:63;;;11551:618;;;;;2293:101:1;;;;;;;;;;;;;:::i;905:112:8:-;;;;;;;;;;;;;:::i;11107:152:38:-;;;;;;;;;;;;;:::i;9982:146::-;;;;;;;;;;;;;:::i;9506:470::-;;;;;;;;;;-1:-1:-1;9506:470:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13363:918::-;;;;;;;;;;-1:-1:-1;13363:918:38;;;;;:::i;:::-;;:::i;11832:650::-;;;;;;;;;;-1:-1:-1;11832:650:38;;;;;:::i;:::-;;:::i;8167:197::-;;;;;;;;;;-1:-1:-1;8167:197:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5254:376::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10936:161::-;;;;;;;;;;-1:-1:-1;11045:7:38;1710:6:1;-1:-1:-1;;;;;1710:6:1;10936:161:38;2118:133:28;9347:153:38;;;;;;;;;;-1:-1:-1;9347:153:38;;;;;:::i;:::-;;:::i;20334:411::-;;;;;;;;;;-1:-1:-1;20334:411:38;;;;;:::i;:::-;;:::i;1611:171:83:-;;;;;;;;;;-1:-1:-1;1697:5:83;1748:18;1611:171;;10328:360:38;;;;;;:::i;:::-;;:::i;14287:185::-;;;;;;;;;;-1:-1:-1;14287:185:38;;;;;:::i;:::-;;:::i;936:76::-;;;;;;;;;;;;;;;5636:168;;;;;;;;;;-1:-1:-1;5636:168:38;;;;;:::i;:::-;5771:25;;;;;;;;5636:168;12857:214;;;;;;;;;;-1:-1:-1;12857:214:38;;;;;:::i;:::-;;:::i;767:163::-;;;;;;;;;;-1:-1:-1;889:34:38;;;;;;;;;;;;;;;;;767:163;;7380:257;;;;;;;;;;-1:-1:-1;7380:257:38;;;;;:::i;:::-;;:::i;17915:1808::-;;;;;;;;;;-1:-1:-1;17915:1808:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6587:229::-;;;;;;;;;;-1:-1:-1;6587:229:38;;;;;:::i;:::-;;:::i;8370:199::-;;;;;;;;;;-1:-1:-1;8370:199:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;617:46:28:-;;;;;;;;;;;;;;;6826:139:38;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;6936:22:38;6826:139;;12488:363;;;;;;;;;;;;;:::i;11435:185::-;;;;;;;;;;;;;:::i;11265:164::-;;;;;;;;;;-1:-1:-1;11395:27:38;;11265:164;;11395:27;;;;22043:38:84;;22031:2;22016:18;11265:164:38;21899:188:84;5810:161:38;;;;;;;;;;-1:-1:-1;5810:161:38;;;;;:::i;:::-;;:::i;8792:204::-;;;;;;;;;;-1:-1:-1;8792:204:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11630:196::-;;;;;;;;;;-1:-1:-1;11630:196:38;;;;;:::i;:::-;;:::i;21283:646::-;;;;;;;;;;-1:-1:-1;21283:646:38;;;;;:::i;:::-;;:::i;:::-;;;;22701:25:84;;;22757:2;22742:18;;22735:34;;;;22785:18;;;22778:34;22689:2;22674:18;21283:646:38;22501:317:84;7798:192:38;;;;;;;;;;-1:-1:-1;7798:192:38;;;;;:::i;:::-;;:::i;19729:356::-;;;;;;;;;;-1:-1:-1;19729:356:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13077:276::-;;;;;;;;;;-1:-1:-1;13077:276:38;;;;;:::i;:::-;;:::i;14478:282::-;;;;;;;;;;-1:-1:-1;14478:282:38;;;;;:::i;:::-;;:::i;20751:280::-;;;;;;;;;;-1:-1:-1;20751:280:38;;;;;:::i;:::-;;:::i;1505:125:42:-;-1:-1:-1;;;;;;1596:27:42;1563:14;1596:27;;;:19;:27;;;;;;1505:125::o;7643:149:38:-;7730:7;7760:25;7778:6;7760:17;:25::i;:::-;7753:32;7643:149;-1:-1:-1;;7643:149:38:o;5977:600::-;-1:-1:-1;;;;;;;;;;;6157:22:38;;;;;;;;;;;;;;;;;;;6067:20;;;;;;6157:22;;6164:15;6157:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6157:22:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6214:4;:11;-1:-1:-1;;;;;6201:25:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6189:37;;6261:4;:11;-1:-1:-1;;;;;6247:26:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6247:26:38;;6236:37;;6288:8;6283:288;6308:4;:11;6302:3;:17;6283:288;;;6343:23;6369:21;6380:4;6385:3;6380:9;;;;;;;;:::i;:::-;;;;;;;6369:10;:21::i;:::-;6343:47;;6421:8;:16;;6404:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;6414:3;6404:14;;;;;;;;:::i;:::-;;;;;;;;;;:33;6475:15;;;;-1:-1:-1;;;;;6475:15:38;6467:38;:93;;6543:15;;;;6535:24;;-1:-1:-1;;6535:24:38;6467:93;;;6508:8;:16;;;6467:93;6451:8;6460:3;6451:13;;;;;;;;:::i;:::-;;;;;;;;;;:109;-1:-1:-1;6321:6:38;;6283:288;;;;5977:600;;;:::o;14766:2257::-;1531:13:1;:11;:13::i;:::-;-1:-1:-1;;;;;14982:20:38;::::1;14961:102;;;::::0;-1:-1:-1;;;14961:102:38;;25905:2:84;14961:102:38::1;::::0;::::1;25887:21:84::0;25944:2;25924:18;;;25917:30;25983:34;25963:18;;;25956:62;-1:-1:-1;;;26034:18:84;;;26027:33;26077:19;;14961:102:38::1;25703:399:84::0;14961:102:38::1;15073:13;15089;15094:7;;15089:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;15089:4:38::1;::::0;-1:-1:-1;;;15089:13:38:i:1;:::-;15073:29;;15120:23;15146:18;15157:6;15146:10;:18::i;:::-;15120:44;;15178:8;:14;;;15196:1;15178:19:::0;15174:472:::1;;15245:8:::0;:26:::1;15264:7:::0;;15245:8;:26:::1;:::i;:::-;;15305:25;15322:7;;15305:16;:25::i;:::-;15285:17;::::0;::::1;:45:::0;;-1:-1:-1;;15285:45:38::1;;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;;;;;;15361:15:38::1;::::0;;::::1;:22:::0;:26:::1;::::0;::::1;:::i;:::-;15344:14;::::0;::::1;:43:::0;15401:15:::1;::::0;::::1;:24:::0;;-1:-1:-1;;;;;;15401:24:38::1;-1:-1:-1::0;;;;;15401:24:38;::::1;;::::0;;-1:-1:-1;;;;;;;;;;;15439:15:38::1;::::0;;::::1;:28:::0;;;;::::1;::::0;;-1:-1:-1;15439:28:38;;;::::1;::::0;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;;::::1;;;;::::0;;::::1;;;;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15174:472:::1;;;15488:15;::::0;::::1;::::0;-1:-1:-1;;;;;15488:25:38;;::::1;:15:::0;::::1;:25;15484:162;;15596:1;15577:16;::::0;::::1;:20:::0;15611:15:::1;::::0;::::1;:24:::0;;-1:-1:-1;;;;;;15611:24:38::1;-1:-1:-1::0;;;;;15611:24:38;::::1;;::::0;;15484:162:::1;15785:13;15800:20:::0;15824:6:::1;-1:-1:-1::0;;;;;15824:19:38::1;15884:36;;;15938:6;15962:4;;15844:136;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;15844:136:38;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;15844:136:38::1;-1:-1:-1::0;;;;;;15844:136:38;;::::1;::::0;;;::::1;::::0;;;15824:157;;::::1;::::0;15844:136;15824:157:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15784:197;;;;16000:8;15995:325;;16083:1;16074:7;16070:15;16059:26;;16267:7;16256:28;;;;;;;;;;;;:::i;:::-;16134:169;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;16134:169:38;;::::1;::::0;;;;;;;-1:-1:-1;;;16120:185:38;;::::1;::::0;::::1;;;:::i;15995:325::-;15707:623;;16454:13;16469:20:::0;16501:4:::1;-1:-1:-1::0;;;;;16493:24:38::1;16558:33;;;16609:6;16518:111;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;16518:111:38;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;16518:111:38::1;-1:-1:-1::0;;;;;;16518:111:38;;::::1;::::0;;;::::1;::::0;;;16493:137;;::::1;::::0;16518:111;16493:137:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16453:177;;;;16649:8;16644:309;;16732:1;16723:7;16719:15;16708:26;;16900:7;16889:28;;;;;;;;;;;;:::i;:::-;16783:153;;;;;;;;:::i;16644:309::-;-1:-1:-1::0;;16977:39:38::1;::::0;;-1:-1:-1;;;;;;32538:33:84;;32520:52;;-1:-1:-1;;;;;32608:32:84;;32603:2;32588:18;;32581:60;16977:39:38::1;::::0;32493:18:84;16977:39:38::1;;;;;;;14951:2072;;14766:2257:::0;;;;;:::o;17440:469::-;17538:33;17573:27;17652:18;17663:6;17652:10;:18::i;:::-;:25;;;-1:-1:-1;;;;;17652:25:38;;-1:-1:-1;17652:25:38;17712:15;17720:6;17712:7;:15::i;:::-;17688:39;;17764:5;:12;-1:-1:-1;;;;;17751:26:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17737:40;;17792:8;17787:116;17812:5;:12;17806:3;:18;17787:116;;;17867:25;17881:5;17887:3;17881:10;;;;;;;;:::i;:::-;;;;;;;17867:13;:25::i;:::-;17848:11;17860:3;17848:16;;;;;;;;:::i;:::-;;;;;;;;;;:44;17826:6;;17787:116;;;;17606:303;17440:469;;;:::o;10134:184::-;10269:42;;;;;;;;;10293:17;10269:42;;;;;;;;;-1:-1:-1;;;;;10269:42:38;;;;;-1:-1:-1;;10269:42:38;;10285:6;;10269:15;:42::i;2866:1437::-;2956:14;1710:6:1;-1:-1:-1;;;;;1710:6:1;;2990:726:38;;3119:9;3108:32;;;;;;;;;;;;:::i;:::-;3099:41;;3154:26;3173:6;3154:18;:26::i;:::-;3280:133;;;;;;;;;3331:2;3280:133;;;3373:11;3280:133;;;;;;;;3260:17;:153;;-1:-1:-1;;3260:153:38;;;;;3486:27;:32;;-1:-1:-1;;3486:32:38;;;;;;2990:726;;;3620:10;-1:-1:-1;;;;;3620:20:38;;;3595:110;;;;-1:-1:-1;;;3595:110:38;;33118:2:84;3595:110:38;;;33100:21:84;33157:2;33137:18;;;33130:30;33196:33;33176:18;;;33169:61;33247:18;;3595:110:38;32916:355:84;3595:110:38;3743:22;;:36;;;;:92;;-1:-1:-1;3799:22:38;;1697:5:83;1748:18;3799:36:38;3743:92;3726:189;;;3860:44;;-1:-1:-1;;;3860:44:38;;33478:2:84;3860:44:38;;;33460:21:84;33517:2;33497:18;;;33490:30;33556:34;33536:18;;;33529:62;-1:-1:-1;;;33607:18:84;;;33600:32;33649:19;;3860:44:38;33276:398:84;3726:189:38;1697:5:83;1748:18;3932:22:38;:35;4007:6;-1:-1:-1;;;;;3999:27:38;;3978:113;;;;-1:-1:-1;;;3978:113:38;;33881:2:84;3978:113:38;;;33863:21:84;33920:2;33900:18;;;33893:30;33959:34;33939:18;;;33932:62;-1:-1:-1;;;34010:18:84;;;34003:33;34053:19;;3978:113:38;33679:399:84;3978:113:38;-1:-1:-1;;;;;;;;4122:49:38;;:6;-1:-1:-1;;;;;4122:12:38;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4122:49:38;;4101:133;;;;-1:-1:-1;;;4101:133:38;;34539:2:84;4101:133:38;;;34521:21:84;34578:2;34558:18;;;34551:30;34617:34;34597:18;;;34590:62;-1:-1:-1;;;34668:18:84;;;34661:34;34712:19;;4101:133:38;34337:400:84;4101:133:38;1697:5:83;1748:18;1496:5;-1:-1:-1;;;;;4249:47:38;4258:6;-1:-1:-1;;;;;4249:47:38;;4286:9;:7;:9::i;:::-;4249:47;;;;;;:::i;:::-;;;;;;;;2946:1357;2866:1437;:::o;8575:207::-;-1:-1:-1;;;;;;;;;;;;;;;;;8720:6:38;-1:-1:-1;;;;;8720:26:38;;8747:27;8767:6;8747:19;:27::i;:::-;8720:55;;;;;;;;;;;;;1687:25:84;;1675:2;1660:18;;1541:177;8720:55:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8720:55:38;;;;;;;;;;;;:::i;9002:335::-;9095:12;9123:23;9149:18;9160:6;9149:10;:18::i;:::-;9198:16;;;;9123:44;;-1:-1:-1;9218:1:38;9198:21;9177:97;;;;-1:-1:-1;;;9177:97:38;;35734:2:84;9177:97:38;;;35716:21:84;35773:2;35753:18;;;35746:30;35812:31;35792:18;;;35785:59;35861:18;;9177:97:38;35532:353:84;9177:97:38;9291:10;:8;:10::i;:::-;-1:-1:-1;;;;;9291:21:38;;9313:8;:16;;;9291:39;;;;;;;;;;;;;1687:25:84;;1675:2;1660:18;;1541:177;9291:39:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9291:39:38;;;;;;;;;;;;:::i;:::-;9284:46;9002:335;-1:-1:-1;;;9002:335:38:o;2118:133:28:-;2175:13;2207:37;2217:26;2207:9;:37::i;:::-;2200:44;;2118:133;:::o;7996:165:38:-;8086:7;8116:18;8127:6;8116:10;:18::i;:::-;:38;;;;7996:165;-1:-1:-1;;7996:165:38:o;17271:159::-;17368:5;17396:18;17407:6;17396:10;:18::i;:::-;:27;;;;;;17271:159;-1:-1:-1;;17271:159:38:o;4387:298::-;4460:4;4476:14;4493:7;11045;1710:6:1;-1:-1:-1;;;;;1710:6:1;;2118:133:28;4493:7:38;4476:24;-1:-1:-1;1942:11:83;4619:49:38;;;;;4663:5;-1:-1:-1;;;;;4653:15:38;:6;-1:-1:-1;;;;;4653:15:38;;4510:168;4387:298;-1:-1:-1;;;4387:298:38:o;7213:157::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7339:22:38;;;;;;;;;:17;:22;;;;;;;;;-1:-1:-1;;;;;7339:22:38;;;;;:24;;:22;:24::i;2293:101:1:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;905:112:8:-;953:13;985:25;1001:8;985:15;:25::i;11107:152:38:-;11222:30;:28;:30::i;9982:146::-;10040:22;10102:6;-1:-1:-1;;;;;10081:38:38;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9506:470::-;9601:42;9659:24;9686:10;:8;:10::i;:::-;-1:-1:-1;;;;;9686:36:38;;9723:27;9743:6;9723:19;:27::i;:::-;9686:65;;;;;;;;;;;;;1687:25:84;;1675:2;1660:18;;1541:177;9686:65:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9686:65:38;;;;;;;;;;;;:::i;:::-;9659:92;;9803:7;:14;-1:-1:-1;;;;;9775:43:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9775:43:38;;;;;;;;;;;;;;;;;9761:57;;9833:8;9828:142;9853:11;:18;9847:3;:24;9828:142;;;9914:10;:8;:10::i;:::-;-1:-1:-1;;;;;9914:31:38;;9946:7;9954:3;9946:12;;;;;;;;:::i;:::-;;;;;;;9914:45;;;;;;;;;;;;;1687:25:84;;1675:2;1660:18;;1541:177;9914:45:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9914:45:38;;;;;;;;;;;;:::i;:::-;9895:11;9907:3;9895:16;;;;;;;;:::i;:::-;;;;;;;;;;:64;9873:6;;9828:142;;;;9649:327;9506:470;;;:::o;13363:918::-;1531:13:1;:11;:13::i;:::-;13565:8:38::1;13509:64;;;;;;;;:::i;:::-;:10;:8;:10::i;:::-;-1:-1:-1::0;;;;;13509:43:38::1;;13553:7;13509:52;;;;;;;;;;;;;1687:25:84::0;;1675:2;1660:18;;1541:177;13509:52:38::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;;;;;;;:::i;:::-;;13488:149;;;::::0;-1:-1:-1;;;13488:149:38;;41987:2:84;13488:149:38::1;::::0;::::1;41969:21:84::0;42026:2;42006:18;;;41999:30;42065:34;42045:18;;;42038:62;-1:-1:-1;;;42116:18:84;;;42109:36;42162:19;;13488:149:38::1;41785:402:84::0;13488:149:38::1;13647:13;13663;13668:7;;13663:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;13663:4:38::1;::::0;-1:-1:-1;;;13663:13:38:i:1;:::-;13647:29;;13686:23;13712:18;13723:6;13712:10;:18::i;:::-;13686:44;;13744:8;:14;;;13762:1;13744:19:::0;13740:486:::1;;13811:8:::0;:26:::1;13830:7:::0;;13811:8;:26:::1;:::i;:::-;;13871:25;13888:7;;13871:16;:25::i;:::-;13851:17;::::0;::::1;:45:::0;;-1:-1:-1;;13851:45:38::1;;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;;;;;;13927:15:38::1;::::0;;::::1;:22:::0;:26:::1;::::0;::::1;:::i;:::-;13910:14;::::0;::::1;:43:::0;13967:16:::1;::::0;::::1;:26:::0;;;-1:-1:-1;;;;;;;;;;;14007:28:38;;:15:::1;:28:::0;::::1;::::0;;-1:-1:-1;14007:28:38;;;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;;::::1;;;;::::0;;::::1;;;;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;13740:486:::1;;;14076:7;14056:8;:16;;;:27;14052:174;;14147:16;::::0;::::1;:26:::0;;;14187:15:::1;::::0;::::1;:28:::0;;-1:-1:-1;;;;;;14187:28:38::1;::::0;;14052:174:::1;14240:34;::::0;;-1:-1:-1;;;;;;42382:33:84;;42364:52;;42447:2;42432:18;;42425:34;;;14240::38::1;::::0;42337:18:84;14240:34:38::1;;;;;;;13478:803;;13363:918:::0;;;:::o;11832:650::-;1531:13:1;:11;:13::i;:::-;11952::38::1;11968;11973:7;;11968:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;11968:4:38::1;::::0;-1:-1:-1;;;11968:13:38:i:1;:::-;11952:29:::0;-1:-1:-1;;;;;;;;;;;;11991:22:38::1;12067:18;11952:29:::0;12067:10:::1;:18::i;:::-;12109:14;::::0;::::1;::::0;12041:44;;-1:-1:-1;12095:11:38::1;12141::::0;;;12133:54:::1;;;::::0;-1:-1:-1;;;12133:54:38;;42672:2:84;12133:54:38::1;::::0;::::1;42654:21:84::0;42711:2;42691:18;;;42684:30;42750:32;42730:18;;;42723:60;42800:18;;12133:54:38::1;42470:354:84::0;12133:54:38::1;12238:12:::0;;12211:18:::1;::::0;12232:5;;12238:16:::1;::::0;12253:1:::1;::::0;12238:16:::1;:::i;:::-;12232:23;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;::::1;;::::0;;;;;::::1;;;;::::0;::::1;;;::::0;-1:-1:-1;12232:23:38;12269:5;12275:10:::1;12284:1;12275:6:::0;:10:::1;:::i;:::-;12269:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;12314:5;:11;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;12314:11:38;;;;;::::1;;::::0;;::::1;;::::0;;;::::1;;;;;;::::0;;;;12371:6;12339:23:::1;12350:11:::0;12339:10:::1;:23::i;:::-;:29;;:38:::0;-1:-1:-1;;;;;;12398:27:38;::::1;;::::0;;;:19;:27:::1;::::0;;;;;12391:34:::1;12398:27:::0;;12391:34:::1;:::i;:::-;-1:-1:-1::0;12391:34:38::1;::::0;::::1;::::0;;-1:-1:-1;;12391:34:38::1;::::0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;12391:34:38::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;-1:-1:-1;12450:25:38::1;::::0;::::1;::::0;::::1;::::0;12468:6;;12450:25:::1;:::i;:::-;;;;;;;;11942:540;;;;11832:650:::0;;:::o;8167:197::-;8260:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8260:23:38;8306:6;-1:-1:-1;;;;;8306:22:38;;8329:27;8349:6;8329:19;:27::i;:::-;8306:51;;;;;;;;;;;;;1687:25:84;;1675:2;1660:18;;1541:177;8306:51:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8306:51:38;;;;;;;;;;;;:::i;5254:376::-;-1:-1:-1;;;;;;;;;;;5375:22:38;5338:17;;5375:26;5371:253;;5430:32;-1:-1:-1;;;;;;;;;;;5443:15:38;;5459:1;5443:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5430:12;:32::i;:::-;5417:45;-1:-1:-1;5492:1:38;5476:138;-1:-1:-1;;;;;;;;;;;5501:22:38;5495:28;;5476:138;;;5565:34;-1:-1:-1;;;;;;;;;;;5578:15:38;;5594:3;5578:20;;;;;;;;:::i;5565:34::-;5551:48;;;;5525:6;;5476:138;;;;5371:253;5254:376;:::o;9347:153::-;9437:7;9467:18;9478:6;9467:10;:18::i;:::-;:26;;;;9347:153;-1:-1:-1;;9347:153:38:o;20334:411::-;20497:15;1531:13:1;:11;:13::i;:::-;20538:66:38::1;::::0;-1:-1:-1;;;20538:66:38;;:19:::1;::::0;:37:::1;::::0;:66:::1;::::0;20576:8;;;;20586:17;;;;20538:66:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20528:76;;20619:119;20658:7;20680;-1:-1:-1::0;;;;;20680:16:38::1;;20711:17;;20619:119;;;;;;;;;:::i;:::-;;;;;;;;20334:411:::0;;;;;;:::o;10328:360::-;10524:47;;;;;;;;;10553:17;10524:47;;;;;;;;;-1:-1:-1;;;;;10524:47:38;;;;;-1:-1:-1;;10524:47:38;;:28;;;;;;;;;:::i;:::-;;2977:15:70;2958;;:34;;;;;;;;;2832:168;10524:47:38;10503:127;;;;-1:-1:-1;;;10503:127:38;;46982:2:84;10503:127:38;;;46964:21:84;47021:2;47001:18;;;46994:30;47060:34;47040:18;;;47033:62;-1:-1:-1;;;47111:18:84;;;47104:31;47152:19;;10503:127:38;46780:397:84;10503:127:38;10647:34;10663:6;10647:34;;;;;;;10671:9;10647:34;:::i;:::-;:15;:34::i;14287:185::-;1531:13:1;:11;:13::i;:::-;14420:45:38::1;14438:7;;14447;-1:-1:-1::0;;;;;14447:15:38::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14420:45::-;14287:185:::0;;;:::o;12857:214::-;1531:13:1;:11;:13::i;:::-;13008:27:38::1;:56:::0;;-1:-1:-1;;13008:56:38::1;;::::0;;;::::1;::::0;;;::::1;::::0;;12857:214::o;7380:257::-;7585:27;;7495:4;;7626:3;;7579:33;;7585:27;;7626:3;7579:33;:::i;:::-;7523:40;;-1:-1:-1;;;7523:40:38;;;;;47726:25:84;;;7560:2:38;47767:18:84;;;47760:47;7523:90:38;;;;;;-1:-1:-1;;;;;7523:6:38;:22;;;;47699:18:84;;7523:40:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:90;;;;:::i;:::-;7522:107;;;;:::i;17915:1808::-;18013:31;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18013:31:38;18060:13;18076:25;18094:6;18076:17;:25::i;:::-;18060:41;-1:-1:-1;18115:12:38;;18111:1606;;18143:43;18189:25;18207:6;18189:17;:25::i;:::-;18143:71;;18228:34;18265:51;:18;:34;;;:49;:51::i;:::-;18228:88;;18337:273;;;;;;;;18387:22;:13;:20;:22::i;:::-;18337:273;;;;18438:18;:34;;;18337:273;;;;;;18501:18;:34;;;18337:273;;;;18561:34;18588:6;18561:26;:34::i;:::-;18337:273;;;;;;;;:::i;:::-;;;18330:280;17915:1808;-1:-1:-1;;;;;17915:1808:38:o;18111:1606::-;18641:15;18659:18;18670:6;18659:10;:18::i;:::-;:25;;;-1:-1:-1;;;;;18659:25:38;;-1:-1:-1;18702:21:38;;18698:1009;;18811:13;18826:20;18858:4;-1:-1:-1;;;;;18850:24:38;18919:33;;;18974:6;18875:123;;;;;;;;:::i;:::-;;;;-1:-1:-1;;18875:123:38;;;;;;;;;;;;;;-1:-1:-1;;;;;18875:123:38;-1:-1:-1;;;;;;18875:123:38;;;;;;;;;;18850:149;;;;18875:123;18850:149;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18810:189;;;;19022:8;19017:424;;19113:1;19104:7;19100:15;19089:26;;19278:7;19267:29;;;;;;;;;;;;:::i;:::-;19172:147;;;;;;;;:::i;19017:424::-;19386:7;19375:47;;;;;;;;;;;;:::i;:::-;19368:54;17915:1808;-1:-1:-1;;;;;;17915:1808:38:o;18698:1009::-;19486:206;;;;;;;;19540:1;19486:206;;;;19574:1;19486:206;;;;19608:1;19486:206;;;;;;19639:34;19666:6;19639:26;:34::i;:::-;19486:206;;;;;;;;:::i;:::-;;;19479:213;17915:1808;-1:-1:-1;;;;17915:1808:38:o;18111:1606::-;18050:1673;17915:1808;;;:::o;6587:229::-;6701:4;6721:13;6737;6742:7;;6737:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6737:4:38;;-1:-1:-1;;;6737:13:38:i;:::-;6721:29;-1:-1:-1;;;;;;;6767:42:38;;:32;6772:18;6721:29;6772:10;:18::i;:::-;6767:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:25;;;;;;;;5636:168;6767:32;-1:-1:-1;;;;;;6767:42:38;;;6587:229;-1:-1:-1;;;;6587:229:38:o;8370:199::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8510:6:38;-1:-1:-1;;;;;8510:23:38;;8534:27;8554:6;8534:19;:27::i;:::-;8510:52;;;;;;;;;;;;;1687:25:84;;1675:2;1660:18;;1541:177;8510:52:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8510:52:38;;;;;;;;;;;;:::i;12488:363::-;1531:13:1;:11;:13::i;:::-;-1:-1:-1;;;;;;;;;;;12651:12:38;;12635:210:::1;12665:7:::0;;12635:210:::1;;12696:14;12713:5:::0;12719:7:::1;12725:1;12719:3:::0;:7:::1;:::i;:::-;12713:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12696:31;;12748:11;-1:-1:-1::0;;;;;;;;;;;1371:27:42;1243:171;12748:11:38::1;-1:-1:-1::0;;;;;;12748:28:38;::::1;;::::0;;;:19:::1;::::0;;;::::1;:28;::::0;;;;;12741:35:::1;12748:28:::0;;12741:35:::1;:::i;:::-;-1:-1:-1::0;12741:35:38::1;::::0;::::1;::::0;;-1:-1:-1;;12741:35:38::1;::::0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;12741:35:38::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;12778:11;;:5;;:11;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;12778:11:38;;;;;::::1;;::::0;;::::1;;::::0;;;::::1;;;;;;::::0;;;;12808:26:::1;::::0;::::1;::::0;::::1;::::0;12826:7;;12808:26:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;12674:6:38;::::1;::::0;::::1;:::i;:::-;;;;12635:210;;;;12575:276;12488:363::o:0;11435:185::-;11556:7;11586:27;862:13:79;;-1:-1:-1;;;;;862:13:79;;783:99;5810:161:38;5902:13;5938:18;5949:6;5938:10;:18::i;:::-;5931:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5810:161;;;:::o;8792:204::-;8889:23;8935:54;8961:27;8981:6;8961:19;:27::i;:::-;8935:25;:54::i;11630:196::-;1531:13:1;:11;:13::i;:::-;11783:36:38::1;11809:9;11783:25;:36::i;:::-;11630:196:::0;:::o;21283:646::-;21381:13;21396:18;21416:15;21447:44;21494:27;21513:6;21494:11;:27::i;:::-;21556:18;;21589:22;;;;21447:74;;-1:-1:-1;21556:18:38;21648:29;21625:12;:19;;;:52;;;;;;;;:::i;:::-;;:287;;21764:32;21741:12;:19;;;:55;;;;;;;;:::i;:::-;;:141;;;-1:-1:-1;21848:34:38;21825:12;:19;;;:57;;;;;;;;:::i;:::-;;21741:141;21719:193;;21909:3;21625:287;;21719:193;21903:3;21625:287;;;21697:3;21625:287;21531:391;;-1:-1:-1;21531:391:38;-1:-1:-1;21531:391:38;;;-1:-1:-1;;21283:646:38;;;;;:::o;7798:192::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7933:6:38;-1:-1:-1;;;;;7933:23:38;;7957:25;7975:6;7957:17;:25::i;19729:356::-;19842:41;19940:7;-1:-1:-1;;;;;19909:46:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19909:46:38;;;;;;;;;;;;;;;;;19899:56;;19970:8;19965:114;19984:20;;;19965:114;;;20043:25;20055:7;;20063:3;20055:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;20043:25::-;20028:7;20036:3;20028:12;;;;;;;;:::i;:::-;;;;;;;;;;:40;20006:6;;19965:114;;;;19729:356;;;;:::o;13077:276::-;1531:13:1;:11;:13::i;:::-;13211:20:38::1;:10;:18;:20::i;:::-;13203:62;;;::::0;-1:-1:-1;;;13203:62:38;;51169:2:84;13203:62:38::1;::::0;::::1;51151:21:84::0;51208:2;51188:18;;;51181:30;51247:31;51227:18;;;51220:59;51296:18;;13203:62:38::1;50967:353:84::0;13203:62:38::1;13295:10:::0;13275:17:::1;:30;13295:10:::0;13275:17;:30:::1;:::i;:::-;;;;13320:26;13335:10;13320:26;;;;;;:::i;:::-;;;;;;;;13077:276:::0;:::o;14478:282::-;1531:13:1;:11;:13::i;:::-;14692:61:38::1;14710:7;;14719:8;-1:-1:-1::0;;;;;14719:27:38::1;;14747:4;;14719:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;14692:61;14478:282:::0;;;;;:::o;20751:280::-;20948:76;;-1:-1:-1;;;;;;20948:76:38;;20909:16;;20948:19;;:47;;:76;;20996:8;;;;21006:17;;;;20948:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20941:83;;20751:280;;;;;;;:::o;22812:464::-;22901:7;22924:25;22952:27;22972:6;22952:19;:27::i;:::-;22924:55;;23029:1;23006:20;:24;:128;;;;-1:-1:-1;23105:29:38;23050:51;;-1:-1:-1;;;23050:51:38;;;;;1687:25:84;;;23050:6:38;-1:-1:-1;;;;;23050:29:38;;;;1660:18:84;;23050:51:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:84;;;;;;;;:::i;:::-;;23006:128;22989:281;;;23166:20;22812:464;-1:-1:-1;;22812:464:38:o;22989:281::-;23224:18;23235:6;23224:10;:18::i;:::-;:35;;;;22812:464;-1:-1:-1;;;22812:464:38:o;1796:162:1:-;11045:7:38;1710:6:1;-1:-1:-1;;;;;1710:6:1;735:10:3;1855:23:1;1851:101;;1901:40;;-1:-1:-1;;;1901:40:1;;735:10:3;1901:40:1;;;9021:51:84;8994:18;;1901:40:1;8855:223:84;23282:404:38;23389:54;;-1:-1:-1;;;23389:54:38;;23364:5;;23389:19;;:35;;:54;;23425:8;;23435:7;;;;23389:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;23389:54:38;;;;;;;;-1:-1:-1;;23389:54:38;;;;;;;;;;;;:::i;:::-;;;23385:295;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;23647:6;23574:93;;;;;;;;:::i;23385:295::-;;;;;;;;;;;23491:9;-1:-1:-1;23484:16:38;;2035:577:42;-1:-1:-1;;;;;;2149:27:42;;2123:23;2149:27;;;:19;:27;;;;;;;;;:42;;;;;2209:15;;;;;;;;;;;2090:21;;2149:42;;2209:15;;2149:42;2209:15;;;;;;;;;-1:-1:-1;2209:15:42;2201:23;;2234:9;2253:230;2275:1;2268:4;:8;2253:230;;;2322:15;2301:5;2307:4;2301:11;;;;;;;;:::i;:::-;;;;;;:37;-1:-1:-1;;;;;2301:37:42;;;;-1:-1:-1;;;;;2301:37:42;;;;;;2356:5;2362:4;2356:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;;2356:16:42;2352:121;2392:5;2352:121;2456:2;2436:22;;;;;2278:7;;2253:230;;;2577:19;;-1:-1:-1;2584:5:42;2035:577;-1:-1:-1;2035:577:42:o;24046:3179:38:-;24163:18;24197:21;24221:18;24232:6;24221:10;:18::i;:::-;24253:14;;;;24197:42;;-1:-1:-1;24253:19:38;24249:2813;;24301:34;24323:11;24301:21;:34::i;:::-;24288:47;;24387:10;24374:9;:23;;24349:120;;;;-1:-1:-1;;;24349:120:38;;56293:2:84;24349:120:38;;;56275:21:84;56332:2;56312:18;;;56305:30;56371:34;56351:18;;;56344:62;-1:-1:-1;;;56422:18:84;;;56415:35;56467:19;;24349:120:38;56091:401:84;24349:120:38;24500:26;;;;24483:14;24580:36;24500:26;24580:25;:36::i;:::-;24540:76;-1:-1:-1;24651:32:38;24634:13;:49;;;;;;;;:::i;:::-;;24630:2173;;24872:33;;-1:-1:-1;;;24872:33:38;;;;;1687:25:84;;;24837:32:38;;24872:6;-1:-1:-1;;;;;24872:22:38;;;;1660:18:84;;24872:33:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24872:33:38;;;;;;;;;;;;:::i;:::-;24837:68;;24923:16;24979:10;24952:8;:18;;;24942:30;;:48;;;;:::i;:::-;24923:67;;25027:1;25012:12;:16;25008:504;;;25070:12;25052:31;;25105:6;-1:-1:-1;;;;;25105:28:38;;25141:10;25153:9;25105:58;;;;;;;;;;;;;1687:25:84;;1675:2;1660:18;;1541:177;25105:58:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25245:187:38;;;56876:25:84;;;56932:2;56917:18;;56910:34;;;-1:-1:-1;;;;;;25245:187:38;;;-1:-1:-1;25296:9:38;;-1:-1:-1;25245:187:38;;-1:-1:-1;56849:18:84;25245:187:38;;;;;;;25008:504;;;25492:1;25479:14;;25008:504;24685:841;;24630:2173;;;25633:29;25616:13;:46;;;;;;;;:::i;:::-;;25612:605;;25767:23;;;;:27;25763:132;;25848:23;;;;25822:50;;-1:-1:-1;;;25822:50:38;;;;;1687:25:84;;;;25822:6:38;-1:-1:-1;;;;;25822:25:38;;;;1660:18:84;;25822:50:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25822:50:38;;;;;;;;;;;;:::i;:::-;;25763:132;25916:23;;;:35;;;25612:605;;;26151:36;;-1:-1:-1;;;26151:36:38;;;;;1687:25:84;;;26151:6:38;-1:-1:-1;;;;;26151:25:38;;;;1660:18:84;;26151:36:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26151:36:38;;;;;;;;;;;;:::i;:::-;;;26147:52;;;;;26356:14;;;;26297:121;;-1:-1:-1;;;26297:121:38;;-1:-1:-1;;;;;26297:6:38;:18;;;;26323:10;;26297:121;;26392:8;;26297:121;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26479:26;;;:38;;;26592:196;;26285:133;;-1:-1:-1;;;;;;;26592:196:38;;;26639:9;;26592:196;;;;26285:133;;26730:10;;26762:8;;26592:196;:::i;:::-;;;;;;;;24630:2173;24274:2551;;24249:2813;;;26835:13;;;;-1:-1:-1;;;;;26835:13:38;:27;26831:231;;26891:89;26924:15;26932:6;26924:7;:15::i;:::-;26958:8;26891:15;:89::i;:::-;26878:102;;26831:231;;;27011:40;;-1:-1:-1;;;27011:40:38;;42672:2:84;27011:40:38;;;42654:21:84;42711:2;42691:18;;;42684:30;42750:32;42730:18;;;42723:60;42800:18;;27011:40:38;42470:354:84;26831:231:38;27088:9;27075:10;:22;27071:148;;;27164:10;27156:52;27185:22;27197:10;27185:9;:22;:::i;:::-;27156:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24187:3038;24046:3179;;;;:::o;1437:153:79:-;1526:13;1519:20;;-1:-1:-1;;;;;;1519:20:79;;;1549:34;1574:8;1549:24;:34::i;2969:360:28:-;3045:13;3074:19;3106:25;3122:8;3106:15;:25::i;:::-;-1:-1:-1;;;;;3096:36:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3096:36:28;;3074:58;;3147:7;3142:150;3165:6;:13;3160:2;:18;3142:150;;;3208:8;3217:2;3208:12;;;;;;;:::i;:::-;;;;3195:6;3202:2;3195:10;;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;;;;;3195:25:28;;;;;;;;-1:-1:-1;3262:5:28;;3142:150;;3232:420:70;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3332:313:70;;;;;;;;3376:4;:18;;;3332:313;;;;;;3432:2;3332:313;;;;;;3463:4;:25;;;-1:-1:-1;;;;;3332:313:70;;;;;3521:4;:25;;;3549:3;3521:31;;;;:::i;:::-;-1:-1:-1;;;;;3332:313:70;;;;;3616:4;:18;;;3588:46;;:4;:25;;;:46;;;;:::i;:::-;-1:-1:-1;;;;;3332:313:70;;;3325:320;3232:420;-1:-1:-1;;3232:420:70:o;23767:359:64:-;23842:13;23871:19;23903:25;23919:8;23903:15;:25::i;:::-;-1:-1:-1;;;;;23893:36:64;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23893:36:64;;23871:58;;23944:7;23939:150;23962:6;:13;23957:2;:18;23939:150;;;24005:8;24014:2;24005:12;;;;;;;:::i;:::-;;;;23992:6;23999:2;23992:10;;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;;;;;23992:25:64;;;;;;;;-1:-1:-1;24059:5:64;;23939:150;;1670:239:79;735:10:3;;1765:14:79;:12;:14::i;:::-;-1:-1:-1;;;;;1765:24:79;;1761:106;;1805:51;;-1:-1:-1;;;1805:51:79;;58349:2:84;1805:51:79;;;58331:21:84;58388:2;58368:18;;;58361:30;58427:34;58407:18;;;58400:62;-1:-1:-1;;;58478:18:84;;;58471:39;58527:19;;1805:51:79;58147:405:84;1761:106:79;1876:26;1895:6;1876:18;:26::i;22473:333:38:-;22539:6;;22561:16;22572:4;22561:10;:16::i;:::-;:24;;;:38;22557:243;;22650:4;22656:16;22667:4;22656:10;:16::i;:::-;:24;;;22639:42;;;-1:-1:-1;;;;;;42382:33:84;;;22639:42:38;;;42364:52:84;42432:18;;42425:34;42337:18;;22639:42:38;;;;;;;;;;;;;22629:53;;;;;;22615:68;;22473:333;;;:::o;22557:243::-;22749:4;22755:16;22766:4;22755:10;:16::i;:::-;:31;;;22738:49;;;-1:-1:-1;;;;;;42382:33:84;;;22738:49:38;;;42364:52:84;42432:18;;42425:34;42337:18;;22738:49:38;42192:273:84;22557:243:38;22473:333;;;:::o;21747:244:64:-;21834:20;;:::i;:::-;21870:32;21905:31;21926:9;21905:20;:31::i;:::-;21870:66;;21953:31;21974:9;21953:20;:31::i;29576:166::-;29685:4;29660:6;24979;:14;;;24971:77;;;;-1:-1:-1;;;24971:77:64;;58759:2:84;24971:77:64;;;58741:21:84;58798:2;58778:18;;;58771:30;58837:34;58817:18;;;58810:62;-1:-1:-1;;;58888:18:84;;;58881:48;58946:19;;24971:77:64;58557:414:84;24971:77:64;29712:23:::1;:6;:12;;;:21;:23::i;22177:290:38:-:0;22266:23;22309:12;;22305:156;;22344:39;;-1:-1:-1;;;22344:39:38;;;;;1687:25:84;;;22344:6:38;-1:-1:-1;;;;;22344:29:38;;;;1660:18:84;;22344:39:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22305:156::-;-1:-1:-1;22421:29:38;;22177:290;-1:-1:-1;22177:290:38:o;2543:215:1:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:1;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:1;;2700:1:::1;2672:31;::::0;::::1;9021:51:84::0;8994:18;;2672:31:1::1;8855:223:84::0;3011:215:70;3074:4;;3111:24;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3111:28:70;;:70;;;;-1:-1:-1;3180:1:70;3160:17;;;;:3;:17;:::i;:::-;:21;;;3111:70;:98;;;;-1:-1:-1;3206:3:70;3185:17;;;;:3;:17;:::i;:::-;:24;;;;3090:129;3011:215;-1:-1:-1;;3011:215:70:o;23692:348:38:-;23812:18;23846:13;23874:5;:12;23862:9;:24;;;;:::i;:::-;23846:40;;23901:8;23896:138;23921:5;:12;23915:3;:18;23896:138;;;23971:4;-1:-1:-1;;;;;23971:18:38;;23997:8;24007:5;24013:3;24007:10;;;;;;;;:::i;:::-;;;;;;;24019:3;23971:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23957:66;;;;:::i;:::-;;-1:-1:-1;23935:6:38;;23896:138;;2912:187:1;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;3398:295:28:-;3480:12;3508:179;3525:2;3515:7;:12;3508:179;;;3549:8;3558:7;3549:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;3549:22:28;3545:66;3591:5;3545:66;3652:10;;3508:179;;30899:294:64;30980:12;31008:179;31025:2;31015:7;:12;31008:179;;;31049:8;31058:7;31049:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;31049:22:64;31045:66;31091:5;31045:66;31152:10;;31008:179;;2415:198:66;2488:11;;:::i;:::-;2545:32;;;;;;;;;;;;2509:33;2545:32;;;;2590:18;2545:32;2590:10;:18::i;30418:406:64:-;30515:20;;:::i;:::-;-1:-1:-1;30758:8:64;;;;30789:28;;;;;;;;;-1:-1:-1;;;;;30758:14:64;;;30770:2;30758:14;;30789:28;;;;;;;;;;30418:406::o;17335:200:66:-;17440:4;17405;939:1;1738:8;1720:26;;:4;:14;;;:26;;;1716:99;;1783:14;;;;;1763:45;;-1:-1:-1;;;1763:45:66;;60026:4:84;60014:17;;;1763:45:66;;;59996:36:84;60068:17;;;60048:18;;;60041:45;59969:18;;1763:45:66;59826:266:84;1716:99:66;17461:69:::1;17479:4;:11;;;17498:4;:26;;;17461:10;:69::i;:::-;-1:-1:-1::0;;;;;17454:76:66::1;::::0;17335:200;-1:-1:-1;;;;17335:200:66:o;2925:996::-;3032:11;;:::i;:::-;1893;;:18;3011:6;;1893:11;:23;1889:77;;1933:26;;-1:-1:-1;;;1933:26:66;;;;;;;;;;;1889:77;3053:17:::1;3094:3;3053:17:::0;-1:-1:-1;;;;;3053:17:66;3198:4:::1;3208:478;3215:8;3208:478;;;3303:18;:6;:16;:18::i;:::-;3289:32:::0;-1:-1:-1;3329:6:66;::::1;::::0;::::1;:::i;:::-;3355:16:::0;3370:1:::1;3355:16:::0;;;;;-1:-1:-1;3417:4:66::1;3403:18:::0;::::1;::::0;-1:-1:-1;3329:6:66;-1:-1:-1;;;;3466:27:66;;3462:218:::1;;3520:13;::::0;::::1;::::0;3549:41:::1;3520:6:::0;3568:21;3549:10:::1;:41::i;:::-;3543:47;;3623:7;3607:6;:13;;;:23;;;;:::i;:::-;3600:30;::::0;;::::1;:::i;:::-;;;3495:144;3208:478;;3462:218;-1:-1:-1::0;3666:5:66::1;3208:478;;;1286:1;3695:35;::::0;::::1;;3691:94;;;3747:31;::::0;-1:-1:-1;;;3747:31:66;;11282:4:84;11270:17;;3747:31:66::1;::::0;::::1;11252:36:84::0;11225:18;;3747:31:66::1;11110:184:84::0;3691:94:66::1;-1:-1:-1::0;3797:119:66::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;::::0;;;;-1:-1:-1;;;;;3797:119:66;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;3797:119:66;;2925:996;-1:-1:-1;2925:996:66:o;8569:671::-;8703:6;8747:2;8723:21;:26;;;8719:75;;;-1:-1:-1;8759:28:66;;;;;8719:75;8803:21;:27;;8828:2;8803:27;8799:73;;8847:18;:6;:16;:18::i;:::-;8840:25;;;;;;8799:73;8881:21;:27;;8906:2;8881:27;8877:74;;8925:19;:6;:17;:19::i;:::-;8918:26;;;;;;8877:74;8960:21;:27;;8985:2;8960:27;8956:74;;9004:19;:6;:17;:19::i;:::-;8997:26;;;;;;8956:74;9039:21;:27;;9064:2;9039:27;9035:74;;9083:19;:6;:17;:19::i;9035:74::-;9118:21;:27;;9143:2;9118:27;9114:65;;-1:-1:-1;;;;;;9155:17:66;;9114:65;9191:44;;-1:-1:-1;;;9191:44:66;;11282:4:84;11270:17;;9191:44:66;;;11252:36:84;11225:18;;9191:44:66;11110:184:84;13332:304:65;13455:11;13407:6;:13;;;13422:6;:11;;;:18;988:6;980:5;:14;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;56876:25:84;;;56917:18;;;56910:34;;;56849:18;;1011:31:65;56702:248:84;976:73:65;13496:11;;13527:13:::1;::::0;::::1;::::0;;13578:25;;;13592:1:::1;13578:25:::0;13572:32;;-1:-1:-1;13527:13:65;;;13615:16:::1;13527:13:::0;13615:16:::1;:::i;:::-;;;::::0;::::1;13470:166;;13332:304:::0;;;;;:::o;13873:312::-;14001:12;13949:6;:13;;;13965:1;13949:17;;;;:::i;:::-;13968:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;56876:25:84;;;56917:18;;;56910:34;;;56849:18;;1011:31:65;56702:248:84;976:73:65;14043:11;;14074:13:::1;::::0;::::1;::::0;;14139:1:::1;14125:25:::0;;;;;14119:32;;-1:-1:-1;14074:13:65;;14162:18:::1;14139:1:::0;14074:13;14162:18:::1;:::i;:::-;::::0;;-1:-1:-1;13873:312:65;;;-1:-1:-1;;;;;13873:312:65:o;14422:::-;14550:12;14498:6;:13;;;14514:1;14498:17;;;;:::i;:::-;14517:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;56876:25:84;;;56917:18;;;56910:34;;;56849:18;;1011:31:65;56702:248:84;976:73:65;14592:11;;14623:13:::1;::::0;::::1;::::0;;14688:1:::1;14674:25:::0;;;;;14668:32;;-1:-1:-1;14623:13:65;;14711:18:::1;14688:1:::0;14623:13;14711:18:::1;:::i;14971:312::-:0;15099:12;15047:6;:13;;;15063:1;15047:17;;;;:::i;:::-;15066:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;56876:25:84;;;56917:18;;;56910:34;;;56849:18;;1011:31:65;56702:248:84;976:73:65;15141:11;;15172:13:::1;::::0;::::1;::::0;;15237:1:::1;15223:25:::0;;;;;15217:32;;-1:-1:-1;15172:13:65;;15260:18:::1;15237:1:::0;15172:13;15260:18:::1;:::i;-1:-1:-1:-:0;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:331:84;-1:-1:-1;;;;;;134:19:84;;218:11;;;;249:1;241:10;;238:101;;;310:1;306:11;;;;303:1;299:19;295:28;;;287:37;283:46;;;;14:331;-1:-1:-1;;14:331:84:o;1155:131::-;-1:-1:-1;;;;;;1229:32:84;;1219:43;;1209:71;;1276:1;1273;1266:12;1291:245;1349:6;1402:2;1390:9;1381:7;1377:23;1373:32;1370:52;;;1418:1;1415;1408:12;1370:52;1457:9;1444:23;1476:30;1500:5;1476:30;:::i;1723:250::-;1808:1;1818:113;1832:6;1829:1;1826:13;1818:113;;;1908:11;;;1902:18;1889:11;;;1882:39;1854:2;1847:10;1818:113;;;-1:-1:-1;;1965:1:84;1947:16;;1940:27;1723:250::o;1978:271::-;2020:3;2058:5;2052:12;2085:6;2080:3;2073:19;2101:76;2170:6;2163:4;2158:3;2154:14;2147:4;2140:5;2136:16;2101:76;:::i;:::-;2231:2;2210:15;-1:-1:-1;;2206:29:84;2197:39;;;;2238:4;2193:50;;1978:271;-1:-1:-1;;1978:271:84:o;2254:598::-;2306:3;2337;2369:5;2363:12;2396:6;2391:3;2384:19;2422:4;2451;2446:3;2442:14;2435:21;;2509:4;2499:6;2496:1;2492:14;2485:5;2481:26;2477:37;2548:4;2541:5;2537:16;2571:1;2581:245;2595:6;2592:1;2589:13;2581:245;;;2682:2;2678:7;2670:5;2664:4;2660:16;2656:30;2651:3;2644:43;2708:38;2741:4;2732:6;2726:13;2708:38;:::i;:::-;2804:12;;;;2700:46;-1:-1:-1;2769:15:84;;;;2617:1;2610:9;2581:245;;;-1:-1:-1;2842:4:84;;2254:598;-1:-1:-1;;;;;;;2254:598:84:o;2857:1407::-;3221:2;3233:21;;;3303:13;;3206:18;;;3325:22;;;3173:4;;3401;;3378:3;3363:19;;;3428:15;;;3173:4;3471:196;3485:6;3482:1;3479:13;3471:196;;;3550:13;;-1:-1:-1;;;;;;3546:40:84;3534:53;;3607:12;;;;3642:15;;;;3507:1;3500:9;3471:196;;;3475:3;;;3712:9;3707:3;3703:19;3698:2;3687:9;3683:18;3676:47;3746:40;3782:3;3774:6;3746:40;:::i;:::-;3822:22;;;3817:2;3802:18;;3795:50;3898:13;;3920:24;;;4002:15;;;;-1:-1:-1;3962:15:84;;;;4037:1;4047:189;4063:8;4058:3;4055:17;4047:189;;;4132:15;;4118:30;;4209:17;;;;4170:14;;;;4091:1;4082:11;4047:189;;;-1:-1:-1;4253:5:84;;2857:1407;-1:-1:-1;;;;;;;;2857:1407:84:o;4269:348::-;4321:8;4331:6;4385:3;4378:4;4370:6;4366:17;4362:27;4352:55;;4403:1;4400;4393:12;4352:55;-1:-1:-1;4426:20:84;;-1:-1:-1;;;;;4458:30:84;;4455:50;;;4501:1;4498;4491:12;4455:50;4538:4;4530:6;4526:17;4514:29;;4590:3;4583:4;4574:6;4566;4562:19;4558:30;4555:39;4552:59;;;4607:1;4604;4597:12;4552:59;4269:348;;;;;:::o;4622:131::-;-1:-1:-1;;;;;4697:31:84;;4687:42;;4677:70;;4743:1;4740;4733:12;4758:375;4829:8;4839:6;4893:3;4886:4;4878:6;4874:17;4870:27;4860:55;;4911:1;4908;4901:12;4860:55;-1:-1:-1;4934:20:84;;-1:-1:-1;;;;;4966:30:84;;4963:50;;;5009:1;5006;4999:12;4963:50;5046:4;5038:6;5034:17;5022:29;;5106:3;5099:4;5089:6;5086:1;5082:14;5074:6;5070:27;5066:38;5063:47;5060:67;;;5123:1;5120;5113:12;5138:902;5266:6;5274;5282;5290;5298;5351:2;5339:9;5330:7;5326:23;5322:32;5319:52;;;5367:1;5364;5357:12;5319:52;5407:9;5394:23;-1:-1:-1;;;;;5477:2:84;5469:6;5466:14;5463:34;;;5493:1;5490;5483:12;5463:34;5532:59;5583:7;5574:6;5563:9;5559:22;5532:59;:::i;:::-;5610:8;;-1:-1:-1;5506:85:84;-1:-1:-1;5695:2:84;5680:18;;5667:32;;-1:-1:-1;5708:31:84;5667:32;5708:31;:::i;:::-;5758:5;;-1:-1:-1;5816:2:84;5801:18;;5788:32;;5832:16;;;5829:36;;;5861:1;5858;5851:12;5829:36;;5900:80;5972:7;5961:8;5950:9;5946:24;5900:80;:::i;:::-;5138:902;;;;-1:-1:-1;5138:902:84;;-1:-1:-1;5999:8:84;;5874:106;5138:902;-1:-1:-1;;;5138:902:84:o;6045:405::-;-1:-1:-1;;;;;6300:32:84;;6282:51;;6369:2;6364;6349:18;;6342:30;;;-1:-1:-1;;6389:55:84;;6425:18;;6417:6;6389:55;:::i;6455:127::-;6516:10;6511:3;6507:20;6504:1;6497:31;6547:4;6544:1;6537:15;6571:4;6568:1;6561:15;6587:227;6673:4;6665:6;6661:17;6744:6;6732:10;6729:22;-1:-1:-1;;;;;6696:10:84;6693:34;6690:62;6687:88;;;6755:18;;:::i;:::-;6791:4;6784:24;-1:-1:-1;6587:227:84:o;6819:225::-;6905:4;6897:6;6893:17;6976:6;6964:10;6961:22;-1:-1:-1;;;;;6928:10:84;6925:34;6922:62;6919:88;;;6987:18;;:::i;7049:225::-;7135:4;7127:6;7123:17;7206:6;7194:10;7191:22;-1:-1:-1;;;;;7158:10:84;7155:34;7152:62;7149:88;;;7217:18;;:::i;7279:249::-;7389:2;7370:13;;-1:-1:-1;;7366:27:84;7354:40;;-1:-1:-1;;;;;7409:34:84;;7445:22;;;7406:62;7403:88;;;7471:18;;:::i;:::-;7507:2;7500:22;-1:-1:-1;;7279:249:84:o;7533:248::-;7600:2;7594:9;7642:4;7630:17;;-1:-1:-1;;;;;7662:34:84;;7698:22;;;7659:62;7656:88;;;7724:18;;:::i;:::-;7760:2;7753:22;7533:248;:::o;7786:186::-;7834:4;-1:-1:-1;;;;;7859:6:84;7856:30;7853:56;;;7889:18;;:::i;:::-;-1:-1:-1;7955:2:84;7934:15;-1:-1:-1;;7930:29:84;7961:4;7926:40;;7786:186::o;7977:419::-;8041:5;8071:35;8099:6;8071:35;:::i;:::-;8135:2;8129:9;8147:31;8175:2;8167:6;8147:31;:::i;:::-;8196:6;8187:15;;8226:6;8218;8211:22;8266:3;8257:6;8252:3;8248:16;8245:25;8242:45;;;8283:1;8280;8273:12;8242:45;8333:6;8328:3;8321:4;8313:6;8309:17;8296:44;8388:1;8381:4;8372:6;8364;8360:19;8356:30;8349:41;;;7977:419;;;;;:::o;8401:449::-;8469:6;8522:2;8510:9;8501:7;8497:23;8493:32;8490:52;;;8538:1;8535;8528:12;8490:52;8578:9;8565:23;-1:-1:-1;;;;;8603:6:84;8600:30;8597:50;;;8643:1;8640;8633:12;8597:50;8666:22;;8719:4;8711:13;;8707:27;-1:-1:-1;8697:55:84;;8748:1;8745;8738:12;8697:55;8771:73;8836:7;8831:2;8818:16;8813:2;8809;8805:11;8771:73;:::i;9083:127::-;9144:10;9139:3;9135:20;9132:1;9125:31;9175:4;9172:1;9165:15;9199:4;9196:1;9189:15;9215:485;9404:2;9393:9;9386:21;9367:4;9432:6;9426:13;9465:3;9461:2;9458:11;9448:45;;9473:18;;:::i;:::-;9529:2;9524;9513:9;9509:18;9502:30;;9579:2;9571:6;9567:15;9561:22;9621:4;9614;9603:9;9599:20;9592:34;9643:51;9690:2;9679:9;9675:18;9661:12;9643:51;:::i;9705:218::-;9852:2;9841:9;9834:21;9815:4;9872:45;9913:2;9902:9;9898:18;9890:6;9872:45;:::i;10735:146::-;10821:2;10814:5;10811:13;10801:47;;10828:18;;:::i;:::-;10857;;10735:146::o;10886:219::-;11038:2;11023:18;;11050:49;11027:9;11081:6;11050:49;:::i;11299:247::-;11358:6;11411:2;11399:9;11390:7;11386:23;11382:32;11379:52;;;11427:1;11424;11417:12;11379:52;11466:9;11453:23;11485:31;11510:5;11485:31;:::i;12412:154::-;12507:1;12500:5;12497:12;12487:46;;12513:18;;:::i;12571:1070::-;12629:3;12660;12692:5;12686:12;12719:6;12714:3;12707:19;12745:4;12774:2;12769:3;12765:12;12758:19;;12830:2;12820:6;12817:1;12813:14;12806:5;12802:26;12798:35;12867:2;12860:5;12856:14;12888:1;12909;12919:696;12935:6;12930:3;12927:15;12919:696;;;13004:16;;;-1:-1:-1;;13000:30:84;12988:43;;13054:13;;13008:4;13160:2;13150:13;;13218:1;13232:276;13248:4;13243:3;13240:13;13232:276;;;13333:4;13325:6;13321:17;13314:5;13307:32;13366:42;13401:6;13390:8;13384:15;13366:42;:::i;:::-;13437:17;;;;13480:14;;;;13356:52;-1:-1:-1;13272:1:84;13263:11;13232:276;;;-1:-1:-1;13593:12:84;;;;13529:6;-1:-1:-1;;;13558:15:84;;;;12961:1;12952:11;12919:696;;;-1:-1:-1;13631:4:84;;12571:1070;-1:-1:-1;;;;;;;;12571:1070:84:o;13646:2006::-;13854:4;13883:2;13923;13912:9;13908:18;13953:2;13942:9;13935:21;13976:6;14011;14005:13;14042:6;14034;14027:22;14068:2;14058:12;;14101:2;14090:9;14086:18;14079:25;;14163:2;14153:6;14150:1;14146:14;14135:9;14131:30;14127:39;14201:2;14193:6;14189:15;14222:1;14232:1391;14246:6;14243:1;14240:13;14232:1391;;;14339:2;14335:7;14323:9;14315:6;14311:22;14307:36;14302:3;14295:49;14373:6;14367:13;14403:4;14450;14445:2;14439:9;14435:20;14427:6;14420:36;14503:2;14499;14495:11;14489:18;14520:70;14586:2;14578:6;14574:15;14560:12;14520:70;:::i;:::-;;14639:2;14635;14631:11;14625:18;14656:63;14715:2;14707:6;14703:15;14687:14;14656:63;:::i;:::-;;14742:4;14795:2;14791;14787:11;14781:18;14836:2;14831;14823:6;14819:15;14812:27;14866:50;14912:2;14904:6;14900:15;14884:14;14866:50;:::i;:::-;14852:64;;;;14939:4;14992:2;14988;14984:11;14978:18;15045:6;15037;15033:19;15028:2;15020:6;15016:15;15009:44;15080:41;15114:6;15098:14;15080:41;:::i;:::-;15066:55;;;;15144:4;15197:2;15193;15189:11;15183:18;15250:6;15242;15238:19;15233:2;15225:6;15221:15;15214:44;15285:57;15335:6;15319:14;15285:57;:::i;:::-;15271:71;;;;15365:4;15418:2;15414;15410:11;15404:18;15382:40;;15471:6;15463;15459:19;15454:2;15446:6;15442:15;15435:44;;15502:41;15536:6;15520:14;15502:41;:::i;:::-;15601:12;;;;15492:51;-1:-1:-1;;;15566:15:84;;;;14268:1;14261:9;14232:1391;;15657:479;15737:6;15745;15753;15806:2;15794:9;15785:7;15781:23;15777:32;15774:52;;;15822:1;15819;15812:12;15774:52;15862:9;15849:23;-1:-1:-1;;;;;15887:6:84;15884:30;15881:50;;;15927:1;15924;15917:12;15881:50;15966:59;16017:7;16008:6;15997:9;15993:22;15966:59;:::i;:::-;16044:8;;15940:85;;-1:-1:-1;16126:2:84;16111:18;;;;16098:32;;15657:479;-1:-1:-1;;;;15657:479:84:o;16141:411::-;16212:6;16220;16273:2;16261:9;16252:7;16248:23;16244:32;16241:52;;;16289:1;16286;16279:12;16241:52;16329:9;16316:23;-1:-1:-1;;;;;16354:6:84;16351:30;16348:50;;;16394:1;16391;16384:12;16348:50;16433:59;16484:7;16475:6;16464:9;16460:22;16433:59;:::i;:::-;16511:8;;16407:85;;-1:-1:-1;16141:411:84;-1:-1:-1;;;;16141:411:84:o;16747:804::-;16928:2;16917:9;16910:21;17003:1;16999;16994:3;16990:11;16986:19;16977:6;16971:13;16967:39;16962:2;16951:9;16947:18;16940:67;17071:8;17065:2;17057:6;17053:15;17047:22;17043:37;17038:2;17027:9;17023:18;17016:65;17145:20;17139:2;17131:6;17127:15;17121:22;17117:49;17112:2;17101:9;17097:18;17090:77;16891:4;17214:2;17206:6;17202:15;17196:22;17255:4;17249:3;17238:9;17234:19;17227:33;17283:52;17330:3;17319:9;17315:19;17301:12;17283:52;:::i;:::-;17269:66;;17390:3;17382:6;17378:16;17372:23;17366:3;17355:9;17351:19;17344:52;17445:3;17437:6;17433:16;17427:23;17459:63;17517:3;17506:9;17502:19;17486:14;16635:12;;16649:4;16631:23;16619:36;;16708:4;16697:16;;;16691:23;-1:-1:-1;;;;;16687:48:84;16671:14;;16664:72;16557:185;17459:63;-1:-1:-1;17539:6:84;16747:804;-1:-1:-1;;;16747:804:84:o;17556:202::-;-1:-1:-1;;;;;;17718:33:84;;;;17700:52;;17688:2;17673:18;;17556:202::o;17763:719::-;17853:6;17861;17869;17877;17930:2;17918:9;17909:7;17905:23;17901:32;17898:52;;;17946:1;17943;17936:12;17898:52;17986:9;17973:23;-1:-1:-1;;;;;18056:2:84;18048:6;18045:14;18042:34;;;18072:1;18069;18062:12;18042:34;18111:59;18162:7;18153:6;18142:9;18138:22;18111:59;:::i;:::-;18189:8;;-1:-1:-1;18085:85:84;-1:-1:-1;18277:2:84;18262:18;;18249:32;;-1:-1:-1;18293:16:84;;;18290:36;;;18322:1;18319;18312:12;18290:36;;18361:61;18414:7;18403:8;18392:9;18388:24;18361:61;:::i;:::-;17763:719;;;;-1:-1:-1;18441:8:84;-1:-1:-1;;;;17763:719:84:o;18487:156::-;18548:5;18593:2;18584:6;18579:3;18575:16;18571:25;18568:45;;;18609:1;18606;18599:12;18648:374;18744:6;18752;18805:2;18793:9;18784:7;18780:23;18776:32;18773:52;;;18821:1;18818;18811:12;18773:52;18860:9;18847:23;18879:30;18903:5;18879:30;:::i;:::-;18928:5;-1:-1:-1;18952:64:84;19008:7;19003:2;18988:18;;18952:64;:::i;:::-;18942:74;;18648:374;;;;;:::o;19027:567::-;19128:6;19136;19144;19197:2;19185:9;19176:7;19172:23;19168:32;19165:52;;;19213:1;19210;19203:12;19165:52;19253:9;19240:23;-1:-1:-1;;;;;19278:6:84;19275:30;19272:50;;;19318:1;19315;19308:12;19272:50;19357:59;19408:7;19399:6;19388:9;19384:22;19357:59;:::i;:::-;19435:8;;-1:-1:-1;19331:85:84;-1:-1:-1;;19520:2:84;19505:18;;19492:32;19533:31;19492:32;19533:31;:::i;:::-;19583:5;19573:15;;;19027:567;;;;;:::o;20054:272::-;20112:6;20165:2;20153:9;20144:7;20140:23;20136:32;20133:52;;;20181:1;20178;20171:12;20133:52;20220:9;20207:23;20270:6;20263:5;20259:18;20252:5;20249:29;20239:57;;20292:1;20289;20282:12;20331:180;20390:6;20443:2;20431:9;20422:7;20418:23;20414:32;20411:52;;;20459:1;20456;20449:12;20411:52;-1:-1:-1;20482:23:84;;20331:180;-1:-1:-1;20331:180:84:o;20516:145::-;20602:1;20595:5;20592:12;20582:46;;20608:18;;:::i;20666:323::-;20743:5;20737:12;20732:3;20725:25;20799:4;20792:5;20788:16;20782:23;20775:4;20770:3;20766:14;20759:47;20855:4;20848:5;20844:16;20838:23;20831:4;20826:3;20822:14;20815:47;20908:4;20901:5;20897:16;20891:23;20923:60;20977:4;20972:3;20968:14;20954:12;20923:60;:::i;20994:243::-;21176:3;21161:19;;21189:42;21165:9;21213:6;21189:42;:::i;21242:652::-;21425:2;21414:9;21407:21;21500:1;21496;21491:3;21487:11;21483:19;21474:6;21468:13;21464:39;21459:2;21448:9;21444:18;21437:67;-1:-1:-1;;;;;21562:2:84;21554:6;21550:15;21544:22;21540:47;21535:2;21524:9;21520:18;21513:75;21652:10;21646:2;21638:6;21634:15;21628:22;21624:39;21619:2;21608:9;21604:18;21597:67;21719:2;21711:6;21707:15;21701:22;21695:3;21684:9;21680:19;21673:51;21388:4;21771:3;21763:6;21759:16;21753:23;21814:4;21807;21796:9;21792:20;21785:34;21836:52;21883:3;21872:9;21868:19;21854:12;21836:52;:::i;22092:219::-;22244:2;22229:18;;22256:49;22233:9;22287:6;22256:49;:::i;22823:444::-;22908:6;22916;22969:2;22957:9;22948:7;22944:23;22940:32;22937:52;;;22985:1;22982;22975:12;22937:52;23025:9;23012:23;-1:-1:-1;;;;;23050:6:84;23047:30;23044:50;;;23090:1;23087;23080:12;23044:50;23129:78;23199:7;23190:6;23179:9;23175:22;23129:78;:::i;23272:699::-;23491:2;23543:21;;;23613:13;;23516:18;;;23635:22;;;23462:4;;23491:2;23714:15;;;;23688:2;23673:18;;;23462:4;23757:188;23771:6;23768:1;23765:13;23757:188;;;23820:43;23859:3;23850:6;23844:13;23820:43;:::i;:::-;23920:15;;;;23892:4;23883:14;;;;;23793:1;23786:9;23757:188;;;-1:-1:-1;23962:3:84;;23272:699;-1:-1:-1;;;;;;23272:699:84:o;23976:241::-;24064:6;24117:2;24105:9;24096:7;24092:23;24088:32;24085:52;;;24133:1;24130;24123:12;24085:52;24156:55;24203:7;24192:9;24156:55;:::i;25186:127::-;25247:10;25242:3;25238:20;25235:1;25228:31;25278:4;25275:1;25268:15;25302:4;25299:1;25292:15;25318:380;25397:1;25393:12;;;;25440;;;25461:61;;25515:4;25507:6;25503:17;25493:27;;25461:61;25568:2;25560:6;25557:14;25537:18;25534:38;25531:161;;25614:10;25609:3;25605:20;25602:1;25595:31;25649:4;25646:1;25639:15;25677:4;25674:1;25667:15;26233:543;26335:2;26330:3;26327:11;26324:446;;;26371:1;26395:5;26392:1;26385:16;26439:4;26436:1;26426:18;26509:2;26497:10;26493:19;26490:1;26486:27;26480:4;26476:38;26545:4;26533:10;26530:20;26527:47;;;-1:-1:-1;26568:4:84;26527:47;26623:2;26618:3;26614:12;26611:1;26607:20;26601:4;26597:31;26587:41;;26678:82;26696:2;26689:5;26686:13;26678:82;;;26741:17;;;26722:1;26711:13;26678:82;;;26682:3;;;26233:543;;;:::o;26952:1206::-;-1:-1:-1;;;;;27071:3:84;27068:27;27065:53;;;27098:18;;:::i;:::-;27127:94;27217:3;27177:38;27209:4;27203:11;27177:38;:::i;:::-;27171:4;27127:94;:::i;:::-;27247:1;27272:2;27267:3;27264:11;27289:1;27284:616;;;;27944:1;27961:3;27958:93;;;-1:-1:-1;28017:19:84;;;28004:33;27958:93;-1:-1:-1;;26909:1:84;26905:11;;;26901:24;26897:29;26887:40;26933:1;26929:11;;;26884:57;28064:78;;27257:895;;27284:616;26180:1;26173:14;;;26217:4;26204:18;;-1:-1:-1;;27320:17:84;;;27421:9;27443:229;27457:7;27454:1;27451:14;27443:229;;;27546:19;;;27533:33;27518:49;;27653:4;27638:20;;;;27606:1;27594:14;;;;27473:12;27443:229;;;27447:3;27700;27691:7;27688:16;27685:159;;;27824:1;27820:6;27814:3;27808;27805:1;27801:11;27797:21;27793:34;27789:39;27776:9;27771:3;27767:19;27754:33;27750:79;27742:6;27735:95;27685:159;;;27887:1;27881:3;27878:1;27874:11;27870:19;27864:4;27857:33;27257:895;;26952:1206;;;:::o;28163:127::-;28224:10;28219:3;28215:20;28212:1;28205:31;28255:4;28252:1;28245:15;28279:4;28276:1;28269:15;28295:125;28360:9;;;28381:10;;;28378:36;;;28394:18;;:::i;28425:267::-;28514:6;28509:3;28502:19;28566:6;28559:5;28552:4;28547:3;28543:14;28530:43;-1:-1:-1;28618:1:84;28593:16;;;28611:4;28589:27;;;28582:38;;;;28674:2;28653:15;;;-1:-1:-1;;28649:29:84;28640:39;;;28636:50;;28425:267::o;28697:501::-;28756:5;28763:6;28823:3;28810:17;28909:2;28905:7;28894:8;28878:14;28874:29;28870:43;28850:18;28846:68;28836:96;;28928:1;28925;28918:12;28836:96;28956:33;;29060:4;29047:18;;;-1:-1:-1;29008:21:84;;-1:-1:-1;;;;;;29077:30:84;;29074:50;;;29120:1;29117;29110:12;29074:50;29167:6;29151:14;29147:27;29140:5;29136:39;29133:59;;;29188:1;29185;29178:12;29203:986;29403:4;29451:2;29440:9;29436:18;29502:10;29497:3;29493:20;29485:6;29481:33;29470:9;29463:52;29534:2;29572;29567;29556:9;29552:18;29545:30;29595:6;29625;29617;29610:22;29663:2;29652:9;29648:18;29641:25;;29725:2;29715:6;29712:1;29708:14;29697:9;29693:30;29689:39;29675:53;;29751:6;29775:1;29785:375;29799:6;29796:1;29793:13;29785:375;;;29864:22;;;-1:-1:-1;;29860:36:84;29848:49;;29946:47;29986:6;29978;29946:47;:::i;:::-;30016:64;30073:6;30058:13;30043;30016:64;:::i;:::-;30006:74;-1:-1:-1;;;30138:12:84;;;;30103:15;;;;29821:1;29814:9;29785:375;;;-1:-1:-1;30177:6:84;;29203:986;-1:-1:-1;;;;;;;;29203:986:84:o;30194:287::-;30323:3;30361:6;30355:13;30377:66;30436:6;30431:3;30424:4;30416:6;30412:17;30377:66;:::i;:::-;30459:16;;;;;30194:287;-1:-1:-1;;30194:287:84:o;30486:489::-;30540:5;30593:3;30586:4;30578:6;30574:17;30570:27;30560:55;;30611:1;30608;30601:12;30560:55;30640:6;30634:13;30666:31;30694:2;30666:31;:::i;:::-;30726:2;30720:9;30738:31;30766:2;30758:6;30738:31;:::i;:::-;30793:2;30785:6;30778:18;30839:3;30832:4;30827:2;30819:6;30815:15;30811:26;30808:35;30805:55;;;30856:1;30853;30846:12;30805:55;30869:76;30942:2;30935:4;30927:6;30923:17;30916:4;30908:6;30904:17;30869:76;:::i;:::-;30963:6;30486:489;-1:-1:-1;;;;;30486:489:84:o;30980:337::-;31060:6;31113:2;31101:9;31092:7;31088:23;31084:32;31081:52;;;31129:1;31126;31119:12;31081:52;31162:9;31156:16;-1:-1:-1;;;;;31187:6:84;31184:30;31181:50;;;31227:1;31224;31217:12;31181:50;31250:61;31303:7;31294:6;31283:9;31279:22;31250:61;:::i;31322:516::-;31584:34;31579:3;31572:47;-1:-1:-1;;;31644:2:84;31639:3;31635:12;31628:45;31554:3;31702:6;31696:13;31718:73;31784:6;31779:2;31774:3;31770:12;31765:2;31757:6;31753:15;31718:73;:::i;:::-;31811:16;;;;31829:2;31807:25;;31322:516;-1:-1:-1;;31322:516:84:o;31843:500::-;32105:34;32100:3;32093:47;-1:-1:-1;;;32165:2:84;32160:3;32156:12;32149:29;32075:3;32207:6;32201:13;32223:73;32289:6;32284:2;32279:3;32275:12;32270:2;32262:6;32258:15;32223:73;:::i;:::-;32316:16;;;;32334:2;32312:25;;31843:500;-1:-1:-1;;31843:500:84:o;32652:259::-;32730:6;32783:2;32771:9;32762:7;32758:23;32754:32;32751:52;;;32799:1;32796;32789:12;32751:52;32831:9;32825:16;32850:31;32875:5;32850:31;:::i;34083:249::-;34152:6;34205:2;34193:9;34184:7;34180:23;34176:32;34173:52;;;34221:1;34218;34211:12;34173:52;34253:9;34247:16;34272:30;34296:5;34272:30;:::i;34742:785::-;34842:6;34895:2;34883:9;34874:7;34870:23;34866:32;34863:52;;;34911:1;34908;34901:12;34863:52;34944:9;34938:16;-1:-1:-1;;;;;35014:2:84;35006:6;35003:14;35000:34;;;35030:1;35027;35020:12;35000:34;35053:22;;;;35109:4;35091:16;;;35087:27;35084:47;;;35127:1;35124;35117:12;35084:47;35160:4;35154:11;35174:32;35199:6;35174:32;:::i;:::-;35234:2;35228:9;35266:3;35259:5;35256:14;35246:42;;35284:1;35281;35274:12;35246:42;35297:21;;35357:2;35349:11;;35343:18;35373:16;;;35370:36;;;35402:1;35399;35392:12;35370:36;35439:56;35487:7;35476:8;35472:2;35468:17;35439:56;:::i;:::-;35434:2;35422:15;;35415:81;-1:-1:-1;35426:6:84;34742:785;-1:-1:-1;;;;;34742:785:84:o;36517:183::-;36577:4;-1:-1:-1;;;;;36602:6:84;36599:30;36596:56;;;36632:18;;:::i;:::-;-1:-1:-1;36677:1:84;36673:14;36689:4;36669:25;;36517:183::o;36705:943::-;36800:6;36831:2;36874;36862:9;36853:7;36849:23;36845:32;36842:52;;;36890:1;36887;36880:12;36842:52;36923:9;36917:16;-1:-1:-1;;;;;36948:6:84;36945:30;36942:50;;;36988:1;36985;36978:12;36942:50;37011:22;;37064:4;37056:13;;37052:27;-1:-1:-1;37042:55:84;;37093:1;37090;37083:12;37042:55;37122:2;37116:9;37144:43;37184:2;37144:43;:::i;:::-;37216:2;37210:9;37228:31;37256:2;37248:6;37228:31;:::i;:::-;37294:18;;;37382:1;37378:10;;;;37370:19;;37366:28;;;37328:15;;;;-1:-1:-1;37406:19:84;;;37403:39;;;37438:1;37435;37428:12;37403:39;37462:11;;;;37482:135;37498:6;37493:3;37490:15;37482:135;;;37564:10;;37552:23;;37515:12;;;;37595;;;;37482:135;;;37636:6;36705:943;-1:-1:-1;;;;;;;36705:943:84:o;37653:114::-;37737:4;37730:5;37726:16;37719:5;37716:27;37706:55;;37757:1;37754;37747:12;37772:134;37849:13;;37871:29;37849:13;37871:29;:::i;37911:168::-;38011:13;;38053:1;38043:12;;38033:40;;38069:1;38066;38059:12;38084:160;38175:13;;38217:2;38207:13;;38197:41;;38234:1;38231;38224:12;38249:1852;38319:5;38372:3;38365:4;38357:6;38353:17;38349:27;38339:55;;38390:1;38387;38380:12;38339:55;38419:6;38413:13;38445:4;38468:43;38508:2;38468:43;:::i;:::-;38540:2;38534:9;38552:31;38580:2;38572:6;38552:31;:::i;:::-;38618:18;;;38710:1;38706:10;;;;38694:23;;38690:32;;;38652:15;;;;-1:-1:-1;38734:15:84;;;38731:35;;;38762:1;38759;38752:12;38731:35;38798:2;38790:6;38786:15;38810:1261;38826:6;38821:3;38818:15;38810:1261;;;38905:3;38899:10;-1:-1:-1;;;;;38982:2:84;38969:11;38966:19;38963:109;;;39026:1;39055:2;39051;39044:14;38963:109;39107:11;39099:6;39095:24;39085:34;;39159:3;39154:2;39150;39146:11;39142:21;39132:119;;39205:1;39234:2;39230;39223:14;39132:119;39286:2;39280:9;39302:34;39327:8;39302:34;:::i;:::-;39362:8;39407:2;39403;39399:11;39439:3;39429:8;39426:17;39423:107;;;39484:1;39513:2;39509;39502:14;39423:107;39564:2;39560;39556:11;39580:415;39598:8;39591:5;39588:19;39580:415;;;39693:5;39687:12;39737:2;39722:13;39719:21;39716:127;;;39789:1;39822:2;39818;39811:14;39716:127;39874:66;39936:3;39931:2;39915:13;39911:2;39907:22;39903:31;39874:66;:::i;:::-;39860:81;;-1:-1:-1;39967:14:84;;;;39619;;39580:415;;;-1:-1:-1;;;40008:21:84;;-1:-1:-1;;40049:12:84;;;;38843;;38810:1261;;;-1:-1:-1;40089:6:84;38249:1852;-1:-1:-1;;;;;;38249:1852:84:o;40106:1429::-;40209:6;40262:2;40250:9;40241:7;40237:23;40233:32;40230:52;;;40278:1;40275;40268:12;40230:52;40311:9;40305:16;-1:-1:-1;;;;;40381:2:84;40373:6;40370:14;40367:34;;;40397:1;40394;40387:12;40367:34;40420:22;;;;40476:4;40458:16;;;40454:27;40451:47;;;40494:1;40491;40484:12;40451:47;40520:17;;:::i;:::-;40560:31;40588:2;40560:31;:::i;:::-;40553:5;40546:46;40624:63;40683:2;40679;40675:11;40624:63;:::i;:::-;40619:2;40612:5;40608:14;40601:87;40720:54;40770:2;40766;40762:11;40720:54;:::i;:::-;40715:2;40708:5;40704:14;40697:78;40814:2;40810;40806:11;40800:18;40843:2;40833:8;40830:16;40827:36;;;40859:1;40856;40849:12;40827:36;40895:56;40943:7;40932:8;40928:2;40924:17;40895:56;:::i;:::-;40890:2;40883:5;40879:14;40872:80;;40991:3;40987:2;40983:12;40977:19;41021:2;41011:8;41008:16;41005:36;;;41037:1;41034;41027:12;41005:36;41074:56;41122:7;41111:8;41107:2;41103:17;41074:56;:::i;:::-;41068:3;41061:5;41057:15;41050:81;;41170:3;41166:2;41162:12;41156:19;41200:2;41190:8;41187:16;41184:36;;;41216:1;41213;41206:12;41184:36;41253:72;41317:7;41306:8;41302:2;41298:17;41253:72;:::i;:::-;41247:3;41240:5;41236:15;41229:97;;41365:3;41361:2;41357:12;41351:19;41395:2;41385:8;41382:16;41379:36;;;41411:1;41408;41401:12;41379:36;41448:56;41496:7;41485:8;41481:2;41477:17;41448:56;:::i;:::-;41442:3;41431:15;;41424:81;-1:-1:-1;41435:5:84;40106:1429;-1:-1:-1;;;;;40106:1429:84:o;41540:240::-;41630:6;41683:2;41671:9;41662:7;41658:23;41654:32;41651:52;;;41699:1;41696;41689:12;41651:52;41722;41764:9;41722:52;:::i;42829:128::-;42896:9;;;42917:11;;;42914:37;;;42931:18;;:::i;42962:127::-;43023:10;43018:3;43014:20;43011:1;43004:31;43054:4;43051:1;43044:15;43078:4;43075:1;43068:15;43094:165;43172:13;;43225:8;43214:20;;43204:31;;43194:59;;43249:1;43246;43239:12;43264:177;43342:13;;43395:20;43384:32;;43374:43;;43364:71;;43431:1;43428;43421:12;43446:129;-1:-1:-1;;;;;43524:5:84;43520:30;43513:5;43510:41;43500:69;;43565:1;43562;43555:12;43580:484;43646:5;43694:4;43682:9;43677:3;43673:19;43669:30;43666:50;;;43712:1;43709;43702:12;43666:50;43745:4;43739:11;43759:32;43784:6;43759:32;:::i;:::-;43809:6;43800:15;;43845:9;43839:16;43864:31;43887:7;43864:31;:::i;:::-;43904:23;;43972:2;43957:18;;43951:25;43985:32;43951:25;43985:32;:::i;:::-;44045:2;44033:15;;;;44026:32;43580:484;;-1:-1:-1;;43580:484:84:o;44069:1067::-;44165:6;44218:2;44206:9;44197:7;44193:23;44189:32;44186:52;;;44234:1;44231;44224:12;44186:52;44267:9;44261:16;-1:-1:-1;;;;;44337:2:84;44329:6;44326:14;44323:34;;;44353:1;44350;44343:12;44323:34;44376:22;;;;44432:4;44414:16;;;44410:27;44407:47;;;44450:1;44447;44440:12;44407:47;44483:2;44477:9;44495:32;44520:6;44495:32;:::i;:::-;44555:2;44549:9;44567:31;44592:5;44567:31;:::i;:::-;44607:21;;44661:41;44698:2;44690:11;;44661:41;:::i;:::-;44656:2;44648:6;44644:15;44637:66;44736:41;44773:2;44769;44765:11;44736:41;:::i;:::-;44731:2;44723:6;44719:15;44712:66;44817:2;44813;44809:11;44803:18;44846:2;44836:8;44833:16;44830:36;;;44862:1;44859;44852:12;44830:36;44899:56;44947:7;44936:8;44932:2;44928:17;44899:56;:::i;:::-;44894:2;44886:6;44882:15;44875:81;;45004:3;45000:2;44996:12;44990:19;44984:3;44976:6;44972:16;44965:45;45044:60;45096:7;45090:3;45086:2;45082:12;45044:60;:::i;:::-;45038:3;45026:16;;45019:86;45030:6;44069:1067;-1:-1:-1;;;;;44069:1067:84:o;45141:441::-;45362:2;45351:9;45344:21;45325:4;45388:62;45446:2;45435:9;45431:18;45423:6;45415;45388:62;:::i;:::-;45498:9;45490:6;45486:22;45481:2;45470:9;45466:18;45459:50;45526;45569:6;45561;45553;45526:50;:::i;45843:413::-;46085:1;46081;46076:3;46072:11;46068:19;46060:6;46056:32;46045:9;46038:51;46125:6;46120:2;46109:9;46105:18;46098:34;46168:2;46163;46152:9;46148:18;46141:30;46019:4;46188:62;46246:2;46235:9;46231:18;46223:6;46215;46188:62;:::i;46261:514::-;46347:6;46400:2;46388:9;46379:7;46375:23;46371:32;46368:52;;;46416:1;46413;46406:12;46368:52;46449:2;46443:9;46461:32;46486:6;46461:32;:::i;:::-;46528:9;46515:23;46547:29;46570:5;46547:29;:::i;:::-;46585:21;;46658:2;46643:18;;46630:32;46671;46630;46671;:::i;:::-;46731:2;46719:15;;46712:32;46723:6;46261:514;-1:-1:-1;;;46261:514:84:o;47182:184::-;47252:6;47305:2;47293:9;47284:7;47280:23;47276:32;47273:52;;;47321:1;47318;47311:12;47273:52;-1:-1:-1;47344:16:84;;47182:184;-1:-1:-1;47182:184:84:o;47371:168::-;47438:6;47464:10;;;47476;;;47460:27;;47499:11;;;47496:37;;;47513:18;;:::i;48007:168::-;48080:9;;;48111;;48128:15;;;48122:22;;48108:37;48098:71;;48149:18;;:::i;48180:127::-;48241:10;48236:3;48232:20;48229:1;48222:31;48272:4;48269:1;48262:15;48296:4;48293:1;48286:15;48312:120;48352:1;48378;48368:35;;48383:18;;:::i;:::-;-1:-1:-1;48417:9:84;;48312:120::o;48437:450::-;-1:-1:-1;;;48694:3:84;48687:33;48669:3;48749:6;48743:13;48765:75;48833:6;48828:2;48823:3;48819:12;48812:4;48804:6;48800:17;48765:75;:::i;:::-;48860:16;;;;48878:2;48856:25;;48437:450;-1:-1:-1;;48437:450:84:o;48892:159::-;48983:13;;49025:1;49015:12;;49005:40;;49041:1;49038;49031:12;49056:656;49150:6;49203:3;49191:9;49182:7;49178:23;49174:33;49171:53;;;49220:1;49217;49210:12;49171:53;49253:2;49247:9;49295:3;49287:6;49283:16;49365:6;49353:10;49350:22;-1:-1:-1;;;;;49317:10:84;49314:34;49311:62;49308:88;;;49376:18;;:::i;:::-;49416:10;49412:2;49405:22;;49457:9;49451:16;49443:6;49436:32;49522:2;49511:9;49507:18;49501:25;49496:2;49488:6;49484:15;49477:50;49581:2;49570:9;49566:18;49560:25;49555:2;49547:6;49543:15;49536:50;49619:61;49676:2;49665:9;49661:18;49619:61;:::i;:::-;49614:2;49602:15;;49595:86;49606:6;49056:656;-1:-1:-1;;;49056:656:84:o;49717:1104::-;49814:6;49867:2;49855:9;49846:7;49842:23;49838:32;49835:52;;;49883:1;49880;49873:12;49835:52;49916:9;49910:16;-1:-1:-1;;;;;49986:2:84;49978:6;49975:14;49972:34;;;50002:1;49999;49992:12;49972:34;50025:22;;;;50081:4;50063:16;;;50059:27;50056:47;;;50099:1;50096;50089:12;50056:47;50132:2;50126:9;50144:32;50169:6;50144:32;:::i;:::-;50204:2;50198:9;50216:31;50241:5;50216:31;:::i;:::-;50256:21;;50315:2;50307:11;;50301:18;50328:32;50301:18;50328:32;:::i;:::-;50388:2;50376:15;;50369:32;50439:2;50431:11;;50425:18;50487:10;50474:24;;50462:37;;50452:65;;50513:1;50510;50503:12;50452:65;50545:2;50533:15;;50526:32;50605:2;50597:11;;;50591:18;50574:15;;;50567:43;50649:3;50641:12;;50635:19;50666:16;;;50663:36;;;50695:1;50692;50685:12;50663:36;50733:56;50781:7;50770:8;50766:2;50762:17;50733:56;:::i;:::-;50727:3;50715:16;;50708:82;-1:-1:-1;50719:6:84;49717:1104;-1:-1:-1;;;;;49717:1104:84:o;50826:136::-;50865:3;50893:5;50883:39;;50902:18;;:::i;:::-;-1:-1:-1;;;50938:18:84;;50826:136::o;51325:542::-;51494:5;51481:19;51509:31;51532:7;51509:31;:::i;:::-;51572:4;51563:7;51559:18;51549:28;;51602:4;51596:11;51651:2;51644:3;51640:8;51636:2;51632:17;51629:25;51623:4;51616:39;51703:2;51696:5;51692:14;51679:28;51716:32;51740:7;51716:32;:::i;:::-;51838:20;51828:7;51825:1;51821:15;51817:42;51812:2;51788:20;51784:25;51780:2;51776:34;51773:42;51770:90;51764:4;51757:104;;;;51325:542;;:::o;51872:490::-;52062:2;52047:18;;52087:20;;52116:29;52087:20;52116:29;:::i;:::-;52183:4;52172:16;52154:35;;52238:4;52226:17;;52213:31;52253:32;52213:31;52253:32;:::i;:::-;-1:-1:-1;;;;;52327:7:84;52323:32;52316:4;52305:9;52301:20;52294:62;;51872:490;;;;:::o;52367:697::-;52445:3;52476;52500:6;52495:3;52488:19;52526:4;52555;52550:3;52546:14;52539:21;;52613:4;52603:6;52600:1;52596:14;52589:5;52585:26;52581:37;52641:5;52664:1;52674:364;52688:6;52685:1;52682:13;52674:364;;;52753:16;;;-1:-1:-1;;52749:30:84;52737:43;;52829:46;52868:6;52861:5;52829:46;:::i;:::-;52896:62;52953:4;52938:13;52923;52896:62;:::i;:::-;53016:12;;;;52888:70;-1:-1:-1;;;52981:15:84;;;;52710:1;52703:9;52674:364;;53069:1329;53324:2;53376:21;;;53349:18;;;53432:22;;;53295:4;;53507:1;53485:2;53470:18;;;;53550:14;;;53535:30;;53531:39;53593:6;53295:4;53627:742;53641:6;53638:1;53635:13;53627:742;;;53706:22;;;-1:-1:-1;;53702:36:84;53690:49;;53778:20;;53853:14;53849:27;;;-1:-1:-1;;53845:41:84;53821:66;;53811:94;;53901:1;53898;53891:12;53811:94;53931:31;;54036:14;;;;53989:19;-1:-1:-1;;;;;54066:30:84;;54063:50;;;54109:1;54106;54099:12;54063:50;54170:6;54166:2;54162:15;54146:14;54142:36;54133:7;54129:50;54126:70;;;54192:1;54189;54182:12;54126:70;54219;54282:6;54274;54265:7;54219:70;:::i;:::-;54347:12;;;;54209:80;-1:-1:-1;;;54312:15:84;;;;53663:1;53656:9;53627:742;;54403:240;54493:6;54546:2;54534:9;54525:7;54521:23;54517:32;54514:52;;;54562:1;54559;54552:12;54514:52;54585;54627:9;54585:52;:::i;54648:326::-;54843:6;54832:9;54825:25;54886:2;54881;54870:9;54866:18;54859:30;54806:4;54906:62;54964:2;54953:9;54949:18;54941:6;54933;54906:62;:::i;54979:247::-;55047:6;55100:2;55088:9;55079:7;55075:23;55071:32;55068:52;;;55116:1;55113;55106:12;55068:52;55148:9;55142:16;55167:29;55190:5;55167:29;:::i;55231:179::-;55266:3;55308:1;55290:16;55287:23;55284:120;;;55354:1;55351;55348;55333:23;-1:-1:-1;55391:1:84;55385:8;55380:3;55376:18;55231:179;:::o;55415:671::-;55454:3;55496:4;55478:16;55475:26;55472:39;;;55415:671;:::o;55472:39::-;55538:2;55532:9;-1:-1:-1;;55603:16:84;55599:25;;55596:1;55532:9;55575:50;55654:4;55648:11;55678:16;-1:-1:-1;;;;;55784:2:84;55777:4;55769:6;55765:17;55762:25;55757:2;55749:6;55746:14;55743:45;55740:58;;;55791:5;;;;;55415:671;:::o;55740:58::-;55828:6;55822:4;55818:17;55807:28;;55864:3;55858:10;55891:2;55883:6;55880:14;55877:27;;;55897:5;;;;;;55415:671;:::o;55877:27::-;55981:2;55962:16;55956:4;55952:27;55948:36;55941:4;55932:6;55927:3;55923:16;55919:27;55916:69;55913:82;;;55988:5;;;;;;55415:671;:::o;55913:82::-;56004:57;56055:4;56046:6;56038;56034:19;56030:30;56024:4;56004:57;:::i;:::-;-1:-1:-1;56077:3:84;;55415:671;-1:-1:-1;;;;;55415:671:84:o;56497:200::-;56563:9;;;56536:4;56591:9;;56619:10;;56631:12;;;56615:29;56654:12;;;56646:21;;56612:56;56609:82;;;56671:18;;:::i;56955:322::-;57183:25;;;57171:2;57156:18;;57217:54;57267:2;57252:18;;57244:6;16635:12;;16649:4;16631:23;16619:36;;16708:4;16697:16;;;16691:23;-1:-1:-1;;;;;16687:48:84;16671:14;;16664:72;16557:185;57282:394;57539:25;;;57595:2;57580:18;;;57573:34;;;16635:12;;16649:4;16631:23;57666:2;57651:18;;16619:36;16697:16;;16691:23;-1:-1:-1;;;;;16687:48:84;16671:14;;;16664:72;57526:3;57511:19;;57616:54;16557:185;57681:257;-1:-1:-1;;;;;57802:10:84;;;57814;;;57798:27;57845:20;;;;57752:18;57884:24;;;57874:58;;57912:18;;:::i;57943:199::-;57982:1;-1:-1:-1;;;;;58053:2:84;58050:1;58046:10;58075:3;58065:37;;58082:18;;:::i;:::-;58120:10;;58116:20;;;;;57943:199;-1:-1:-1;;57943:199:84:o;58976:245::-;59034:6;59087:2;59075:9;59066:7;59062:23;59058:32;59055:52;;;59103:1;59100;59093:12;59055:52;59142:9;59129:23;59161:30;59185:5;59161:30;:::i;59226:243::-;59283:6;59336:2;59324:9;59315:7;59311:23;59307:32;59304:52;;;59352:1;59349;59342:12;59304:52;59391:9;59378:23;59410:29;59433:5;59410:29;:::i;59474:347::-;-1:-1:-1;;;;;;59718:33:84;;59700:52;;59688:2;59673:18;;59761:54;59811:2;59796:18;;59788:6;16635:12;;16649:4;16631:23;16619:36;;16708:4;16697:16;;;16691:23;-1:-1:-1;;;;;16687:48:84;16671:14;;16664:72;16557:185;60097:135;60136:3;60157:17;;;60154:43;;60177:18;;:::i;:::-;-1:-1:-1;60224:1:84;60213:13;;60097:135::o",
|
|
54020
54020
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../WitnetUpgradableBase.sol\";\n\nimport \"../../WitnetPriceFeeds.sol\";\n\nimport \"../../data/WitnetPriceFeedsData.sol\";\nimport \"../../libs/WitnetPriceFeedsLib.sol\";\nimport \"../../patterns/Ownable2Step.sol\";\n\n/// @title WitnetPriceFeeds: Price Feeds live repository reliant on the Witnet Oracle blockchain.\n/// @author Guillermo Díaz <guillermo@otherplane.com>\n\ncontract WitnetPriceFeedsDefault\n is\n Ownable2Step,\n WitnetPriceFeeds,\n WitnetPriceFeedsData,\n WitnetUpgradableBase\n{\n using Witnet for bytes;\n using Witnet for Witnet.Result;\n using WitnetV2 for WitnetV2.Response;\n using WitnetV2 for WitnetV2.RadonSLA;\n\n function class() virtual override(WitnetFeeds, WitnetUpgradableBase) public view returns (string memory) {\n return type(WitnetPriceFeedsDefault).name;\n }\n\n bytes4 immutable public override specs = type(IWitnetPriceFeeds).interfaceId;\n WitnetOracle immutable public override witnet;\n\n WitnetV2.RadonSLA private __defaultRadonSLA;\n uint16 private __baseFeeOverheadPercentage;\n \n constructor(\n WitnetOracle _wrb,\n bool _upgradable,\n bytes32 _versionTag\n )\n Ownable(address(msg.sender))\n WitnetUpgradableBase(\n _upgradable,\n _versionTag,\n \"io.witnet.proxiable.feeds.price\"\n )\n {\n witnet = _wrb;\n }\n\n // solhint-disable-next-line payable-fallback\n fallback() override external {\n if (\n msg.sig == IWitnetPriceSolver.solve.selector\n && msg.sender == address(this)\n ) {\n address _solver = __records_(bytes4(bytes8(msg.data) << 32)).solver;\n require(\n _solver != address(0),\n \"WitnetPriceFeeds: unsettled solver\"\n );\n assembly {\n let ptr := mload(0x40)\n calldatacopy(ptr, 0, calldatasize())\n let result := delegatecall(gas(), _solver, ptr, calldatasize(), 0, 0)\n let size := returndatasize()\n returndatacopy(ptr, 0, size)\n switch result\n case 0 { revert(ptr, size) }\n default { return(ptr, size) }\n }\n } else {\n revert(\"WitnetPriceFeeds: not implemented\");\n }\n }\n\n\n // ================================================================================================================\n // --- Overrides 'Upgradeable' ------------------------------------------------------------------------------------\n\n /// @notice Re-initialize contract's storage context upon a new upgrade from a proxy.\n /// @dev Must fail when trying to upgrade to same logic contract more than once.\n function initialize(bytes memory _initData)\n public\n override\n {\n address _owner = owner();\n if (_owner == address(0)) {\n // set owner as specified by first argument in _initData\n _owner = abi.decode(_initData, (address));\n _transferOwnership(_owner);\n // settle default Radon SLA upon first initialization\n __defaultRadonSLA = WitnetV2.RadonSLA({\n committeeSize: 10,\n witnessingFeeNanoWit: 2 * 10 ** 8 // 0.2 $WIT\n });\n // settle default base fee overhead percentage\n __baseFeeOverheadPercentage = 10;\n } else {\n // only the owner can initialize:\n require(\n msg.sender == _owner,\n \"WitnetPriceFeeds: not the owner\"\n );\n }\n\n if (\n __proxiable().codehash != bytes32(0)\n && __proxiable().codehash == codehash()\n ) {\n revert(\"WitnetPriceFeeds: already upgraded\");\n } \n __proxiable().codehash = codehash();\n\n require(\n address(witnet).code.length > 0,\n \"WitnetPriceFeeds: inexistent oracle\"\n );\n require(\n witnet.specs() == type(IWitnetOracle).interfaceId, \n \"WitnetPriceFeeds: uncompliant oracle\"\n );\n emit Upgraded(_owner, base(), codehash(), version());\n }\n\n /// Tells whether provided address could eventually upgrade the contract.\n function isUpgradableFrom(address _from) external view override returns (bool) {\n address _owner = owner();\n return (\n // false if the WRB is intrinsically not upgradable, or `_from` is no owner\n isUpgradable()\n && _owner == _from\n );\n }\n\n\n // ================================================================================================================\n // --- Implements 'IFeeds' ----------------------------------------------------------------------------------------\n\n /// @notice Returns unique hash determined by the combination of data sources being used\n /// @notice on non-routed price feeds, and dependencies of routed price feeds.\n /// @dev Ergo, `footprint()` changes if any data source is modified, or the dependecy tree\n /// @dev on any routed price feed is altered.\n function footprint() \n virtual override\n public view\n returns (bytes4 _footprint)\n {\n if (__storage().ids.length > 0) {\n _footprint = _footprintOf(__storage().ids[0]);\n for (uint _ix = 1; _ix < __storage().ids.length; _ix ++) {\n _footprint ^= _footprintOf(__storage().ids[_ix]);\n }\n }\n }\n\n function hash(string memory caption)\n virtual override\n public pure\n returns (bytes4)\n {\n return bytes4(keccak256(bytes(caption)));\n }\n\n function lookupCaption(bytes4 feedId)\n override\n public view\n returns (string memory)\n {\n return __records_(feedId).caption;\n }\n\n function supportedFeeds()\n virtual override\n external view\n returns (bytes4[] memory _ids, string[] memory _captions, bytes32[] memory _solvers)\n {\n _ids = __storage().ids;\n _captions = new string[](_ids.length);\n _solvers = new bytes32[](_ids.length);\n for (uint _ix = 0; _ix < _ids.length; _ix ++) {\n Record storage __record = __records_(_ids[_ix]);\n _captions[_ix] = __record.caption;\n _solvers[_ix] = address(__record.solver) == address(0) ? __record.radHash : bytes32(bytes20(__record.solver));\n }\n }\n \n function supportsCaption(string calldata caption)\n virtual override\n external view\n returns (bool)\n {\n bytes4 feedId = hash(caption);\n return hash(__records_(feedId).caption) == feedId;\n }\n \n function totalFeeds() \n override \n external view\n returns (uint256)\n {\n return __storage().ids.length;\n }\n\n\n // ================================================================================================================\n // --- Implements 'IWitnetFeeds' ----------------------------------------------------------------------------------\n\n function defaultRadonSLA()\n override\n public view\n returns (Witnet.RadonSLA memory)\n {\n return __defaultRadonSLA.toV1();\n }\n \n function estimateUpdateBaseFee(uint256 _evmGasPrice)\n virtual override\n public view\n returns (uint)\n {\n return (witnet.estimateBaseFee(_evmGasPrice, 32)\n * (100 + __baseFeeOverheadPercentage)\n ) / 100; \n }\n\n function lastValidQueryId(bytes4 feedId)\n override public view\n returns (uint256)\n {\n return _lastValidQueryId(feedId);\n }\n\n function lastValidResponse(bytes4 feedId)\n override public view\n returns (WitnetV2.Response memory)\n {\n return witnet.getQueryResponse(_lastValidQueryId(feedId));\n }\n\n function latestUpdateQueryId(bytes4 feedId)\n override public view\n returns (uint256)\n {\n return __records_(feedId).latestUpdateQueryId;\n }\n\n function latestUpdateRequest(bytes4 feedId)\n override external view \n returns (WitnetV2.Request memory)\n {\n return witnet.getQueryRequest(latestUpdateQueryId(feedId));\n }\n\n function latestUpdateResponse(bytes4 feedId)\n override external view\n returns (WitnetV2.Response memory)\n {\n return witnet.getQueryResponse(latestUpdateQueryId(feedId));\n }\n\n function latestUpdateResultError(bytes4 feedId)\n override external view \n returns (Witnet.ResultError memory)\n {\n return witnet.getQueryResultError(latestUpdateQueryId(feedId));\n }\n \n function latestUpdateResponseStatus(bytes4 feedId)\n override public view\n returns (WitnetV2.ResponseStatus)\n {\n return _checkQueryResponseStatus(latestUpdateQueryId(feedId));\n }\n\n function lookupWitnetBytecode(bytes4 feedId)\n override external view\n returns (bytes memory)\n {\n Record storage __record = __records_(feedId);\n require(\n __record.radHash != 0,\n \"WitnetPriceFeeds: no RAD hash\"\n );\n return registry().bytecodeOf(__record.radHash);\n }\n \n function lookupWitnetRadHash(bytes4 feedId)\n override public view\n returns (bytes32)\n {\n return __records_(feedId).radHash;\n }\n\n function lookupWitnetRetrievals(bytes4 feedId)\n override external view\n returns (Witnet.RadonRetrieval[] memory _retrievals)\n {\n bytes32[] memory _hashes = registry().lookupRadonRequestSources(lookupWitnetRadHash(feedId));\n _retrievals = new Witnet.RadonRetrieval[](_hashes.length);\n for (uint _ix = 0; _ix < _retrievals.length; _ix ++) {\n _retrievals[_ix] = registry().lookupRadonRetrieval(_hashes[_ix]);\n }\n }\n\n function registry() public view virtual override returns (WitnetRequestBytecodes) {\n return WitnetOracle(address(witnet)).registry();\n }\n\n function requestUpdate(bytes4 feedId)\n external payable\n virtual override\n returns (uint256)\n {\n return __requestUpdate(feedId, __defaultRadonSLA);\n }\n \n function requestUpdate(bytes4 feedId, WitnetV2.RadonSLA calldata updateSLA)\n public payable\n virtual override\n returns (uint256 _usedFunds)\n {\n require(\n updateSLA.equalOrGreaterThan(__defaultRadonSLA),\n \"WitnetPriceFeeds: unsecure update\"\n );\n return __requestUpdate(feedId, updateSLA);\n }\n\n\n // ================================================================================================================\n // --- Implements 'IWitnetFeedsAdmin' -----------------------------------------------------------------------------\n\n function owner()\n virtual override (IWitnetFeedsAdmin, Ownable)\n public view \n returns (address)\n {\n return Ownable.owner();\n }\n \n function acceptOwnership()\n virtual override (IWitnetFeedsAdmin, Ownable2Step)\n public\n {\n Ownable2Step.acceptOwnership();\n }\n\n function baseFeeOverheadPercentage()\n virtual override\n external view\n returns (uint16)\n {\n return __baseFeeOverheadPercentage;\n }\n\n function pendingOwner() \n virtual override (IWitnetFeedsAdmin, Ownable2Step)\n public view\n returns (address)\n {\n return Ownable2Step.pendingOwner();\n }\n \n function transferOwnership(address _newOwner)\n virtual override (IWitnetFeedsAdmin, Ownable2Step)\n public \n onlyOwner\n {\n Ownable.transferOwnership(_newOwner);\n }\n\n function deleteFeed(string calldata caption)\n virtual override\n external \n onlyOwner\n {\n bytes4 feedId = hash(caption);\n bytes4[] storage __ids = __storage().ids;\n Record storage __record = __records_(feedId);\n uint _index = __record.index;\n require(_index != 0, \"WitnetPriceFeeds: unknown feed\");\n {\n bytes4 _lastFeedId = __ids[__ids.length - 1];\n __ids[_index - 1] = _lastFeedId;\n __ids.pop();\n __records_(_lastFeedId).index = _index;\n delete __storage().records[feedId];\n }\n emit WitnetFeedDeleted(feedId);\n }\n\n function deleteFeeds()\n virtual override\n external\n onlyOwner\n {\n bytes4[] storage __ids = __storage().ids;\n for (uint _ix = __ids.length; _ix > 0; _ix --) {\n bytes4 _feedId = __ids[_ix - 1];\n delete __storage().records[_feedId]; __ids.pop();\n emit WitnetFeedDeleted(_feedId);\n }\n }\n\n function settleBaseFeeOverheadPercentage(uint16 _baseFeeOverheadPercentage)\n virtual override\n external\n onlyOwner \n {\n __baseFeeOverheadPercentage = _baseFeeOverheadPercentage;\n }\n\n function settleDefaultRadonSLA(WitnetV2.RadonSLA calldata defaultSLA)\n override public\n onlyOwner\n {\n require(defaultSLA.isValid(), \"WitnetPriceFeeds: invalid SLA\");\n __defaultRadonSLA = defaultSLA;\n emit WitnetRadonSLA(defaultSLA);\n }\n \n function settleFeedRequest(string calldata caption, bytes32 radHash)\n override public\n onlyOwner\n {\n require(\n registry().lookupRadonRequestResultDataType(radHash) == dataType,\n \"WitnetPriceFeeds: bad result data type\"\n );\n bytes4 feedId = hash(caption);\n Record storage __record = __records_(feedId);\n if (__record.index == 0) {\n // settle new feed:\n __record.caption = caption;\n __record.decimals = _validateCaption(caption);\n __record.index = __storage().ids.length + 1;\n __record.radHash = radHash;\n __storage().ids.push(feedId);\n } else if (__record.radHash != radHash) {\n // update radHash on existing feed:\n __record.radHash = radHash;\n __record.solver = address(0);\n }\n emit WitnetFeedSettled(feedId, radHash);\n }\n\n function settleFeedRequest(string calldata caption, WitnetRequest request)\n override external\n onlyOwner\n {\n settleFeedRequest(caption, request.radHash());\n }\n\n function settleFeedRequest(\n string calldata caption,\n WitnetRequestTemplate template,\n string[][] calldata args\n )\n override external\n onlyOwner\n {\n settleFeedRequest(caption, template.verifyRadonRequest(args));\n }\n\n function settleFeedSolver(\n string calldata caption,\n address solver,\n string[] calldata deps\n )\n override external\n onlyOwner\n {\n require(\n solver != address(0),\n \"WitnetPriceFeeds: no solver address\"\n );\n bytes4 feedId = hash(caption); \n Record storage __record = __records_(feedId);\n if (__record.index == 0) {\n // settle new feed:\n __record.caption = caption;\n __record.decimals = _validateCaption(caption);\n __record.index = __storage().ids.length + 1;\n __record.solver = solver;\n __storage().ids.push(feedId);\n } else if (__record.solver != solver) {\n // update radHash on existing feed:\n __record.radHash = 0;\n __record.solver = solver;\n }\n // validate solver first-level dependencies\n {\n // solhint-disable-next-line avoid-low-level-calls\n (bool _success, bytes memory _reason) = solver.delegatecall(abi.encodeWithSelector(\n IWitnetPriceSolver.validate.selector,\n feedId,\n deps\n ));\n if (!_success) {\n assembly {\n _reason := add(_reason, 4)\n }\n revert(string(abi.encodePacked(\n \"WitnetPriceFeedUpgradable: solver validation failed: \",\n string(abi.decode(_reason,(string)))\n )));\n }\n }\n // smoke-test the solver \n { \n // solhint-disable-next-line avoid-low-level-calls\n (bool _success, bytes memory _reason) = address(this).staticcall(abi.encodeWithSelector(\n IWitnetPriceSolver.solve.selector,\n feedId\n ));\n if (!_success) {\n assembly {\n _reason := add(_reason, 4)\n }\n revert(string(abi.encodePacked(\n \"WitnetPriceFeeds: smoke-test failed: \",\n string(abi.decode(_reason,(string)))\n )));\n }\n }\n emit WitnetFeedSolverSettled(feedId, solver);\n }\n\n\n // ================================================================================================================\n // --- Implements 'IWitnetPriceFeeds' -----------------------------------------------------------------------------\n\n function lookupDecimals(bytes4 feedId) \n override \n external view\n returns (uint8)\n {\n return __records_(feedId).decimals;\n }\n \n function lookupPriceSolver(bytes4 feedId)\n override\n external view\n returns (IWitnetPriceSolver _solverAddress, string[] memory _solverDeps)\n {\n _solverAddress = IWitnetPriceSolver(__records_(feedId).solver);\n bytes4[] memory _deps = _depsOf(feedId);\n _solverDeps = new string[](_deps.length);\n for (uint _ix = 0; _ix < _deps.length; _ix ++) {\n _solverDeps[_ix] = lookupCaption(_deps[_ix]);\n }\n }\n\n function latestPrice(bytes4 feedId)\n virtual override\n public view\n returns (IWitnetPriceSolver.Price memory)\n {\n uint _queryId = _lastValidQueryId(feedId);\n if (_queryId > 0) {\n WitnetV2.Response memory _lastValidResponse = lastValidResponse(feedId);\n Witnet.Result memory _latestResult = _lastValidResponse.resultCborBytes.toWitnetResult();\n return IWitnetPriceSolver.Price({\n value: _latestResult.asUint(),\n timestamp: _lastValidResponse.resultTimestamp,\n tallyHash: _lastValidResponse.resultTallyHash,\n status: latestUpdateResponseStatus(feedId)\n });\n } else {\n address _solver = __records_(feedId).solver;\n if (_solver != address(0)) {\n // solhint-disable-next-line avoid-low-level-calls\n (bool _success, bytes memory _result) = address(this).staticcall(abi.encodeWithSelector(\n IWitnetPriceSolver.solve.selector,\n feedId\n ));\n if (!_success) {\n assembly {\n _result := add(_result, 4)\n }\n revert(string(abi.encodePacked(\n \"WitnetPriceFeeds: \",\n string(abi.decode(_result, (string)))\n )));\n } else {\n return abi.decode(_result, (IWitnetPriceSolver.Price));\n }\n } else {\n return IWitnetPriceSolver.Price({\n value: 0,\n timestamp: 0,\n tallyHash: 0,\n status: latestUpdateResponseStatus(feedId)\n });\n }\n }\n }\n\n function latestPrices(bytes4[] calldata feedIds)\n virtual override\n external view\n returns (IWitnetPriceSolver.Price[] memory _prices)\n {\n _prices = new IWitnetPriceSolver.Price[](feedIds.length);\n for (uint _ix = 0; _ix < feedIds.length; _ix ++) {\n _prices[_ix] = latestPrice(feedIds[_ix]);\n }\n }\n\n\n // ================================================================================================================\n // --- Implements 'IWitnetPriceSolverDeployer' ---------------------------------------------------------------------\n\n function deployPriceSolver(bytes calldata initcode, bytes calldata constructorParams)\n virtual override\n external\n onlyOwner\n returns (address _solver)\n {\n _solver = WitnetPriceFeedsLib.deployPriceSolver(initcode, constructorParams);\n emit WitnetPriceSolverDeployed(\n _solver, \n _solver.codehash, \n constructorParams\n );\n }\n\n function determinePriceSolverAddress(bytes calldata initcode, bytes calldata constructorParams)\n virtual override\n public view\n returns (address _address)\n {\n return WitnetPriceFeedsLib.determinePriceSolverAddress(initcode, constructorParams);\n }\n\n\n // ================================================================================================================\n // --- Implements 'IERC2362' --------------------------------------------------------------------------------------\n \n function valueFor(bytes32 feedId)\n virtual override\n external view\n returns (int256 _value, uint256 _timestamp, uint256 _status)\n {\n IWitnetPriceSolver.Price memory _latestPrice = latestPrice(bytes4(feedId));\n return (\n int(_latestPrice.value),\n _latestPrice.timestamp,\n _latestPrice.status == WitnetV2.ResponseStatus.Ready \n ? 200\n : (\n _latestPrice.status == WitnetV2.ResponseStatus.Awaiting \n || _latestPrice.status == WitnetV2.ResponseStatus.Finalizing\n ) ? 404 : 400\n );\n }\n\n\n // ================================================================================================================\n // --- Internal methods -------------------------------------------------------------------------------------------\n\n function _checkQueryResponseStatus(uint _queryId)\n internal view\n returns (WitnetV2.ResponseStatus)\n {\n if (_queryId > 0) {\n return witnet.getQueryResponseStatus(_queryId);\n } else {\n return WitnetV2.ResponseStatus.Ready;\n }\n }\n\n function _footprintOf(bytes4 _id4) virtual internal view returns (bytes4) {\n if (__records_(_id4).radHash != bytes32(0)) {\n return bytes4(keccak256(abi.encode(_id4, __records_(_id4).radHash)));\n } else {\n return bytes4(keccak256(abi.encode(_id4, __records_(_id4).solverDepsFlag)));\n }\n }\n\n function _lastValidQueryId(bytes4 feedId)\n virtual internal view\n returns (uint256)\n {\n uint _latestUpdateQueryId = latestUpdateQueryId(feedId);\n if (\n _latestUpdateQueryId > 0\n && witnet.getQueryResponseStatus(_latestUpdateQueryId) == WitnetV2.ResponseStatus.Ready\n ) {\n return _latestUpdateQueryId;\n } else {\n return __records_(feedId).lastValidQueryId;\n }\n }\n\n function _validateCaption(string calldata caption)\n internal view returns (uint8)\n {\n try WitnetPriceFeedsLib.validateCaption(__prefix, caption) returns (uint8 _decimals) {\n return _decimals;\n } catch Error(string memory reason) {\n revert(string(abi.encodePacked(\n \"WitnetPriceFeeds: \", \n reason\n )));\n }\n }\n\n function __requestUpdate(bytes4[] memory _deps, WitnetV2.RadonSLA memory sla)\n virtual internal\n returns (uint256 _usedFunds)\n {\n uint _partial = msg.value / _deps.length;\n for (uint _ix = 0; _ix < _deps.length; _ix ++) {\n _usedFunds += this.requestUpdate{value: _partial}(_deps[_ix], sla);\n }\n }\n\n function __requestUpdate(bytes4 feedId, WitnetV2.RadonSLA memory querySLA)\n virtual internal\n returns (uint256 _usedFunds)\n {\n Record storage __feed = __records_(feedId);\n if (__feed.radHash != 0) {\n _usedFunds = estimateUpdateBaseFee(tx.gasprice);\n require(\n msg.value >= _usedFunds, \n \"WitnetPriceFeeds: insufficient reward\"\n );\n uint _latestId = __feed.latestUpdateQueryId;\n WitnetV2.ResponseStatus _latestStatus = _checkQueryResponseStatus(_latestId);\n if (_latestStatus == WitnetV2.ResponseStatus.Awaiting) {\n // latest update is still pending, so just increase the reward\n // accordingly to current tx gasprice:\n WitnetV2.Request memory _request = witnet.getQueryRequest(_latestId);\n int _deltaReward = int(int72(_request.evmReward)) - int(_usedFunds);\n if (_deltaReward > 0) {\n _usedFunds = uint(_deltaReward);\n witnet.upgradeQueryEvmReward{value: _usedFunds}(_latestId);\n // solhint-disable avoid-tx-origin\n emit WitnetFeedUpdateRequested(\n tx.origin, \n feedId, \n _latestId,\n _usedFunds\n );\n } else {\n _usedFunds = 0;\n }\n } else {\n // Check if latest update ended successfully:\n if (_latestStatus == WitnetV2.ResponseStatus.Ready) {\n // If so, remove previous last valid query from the WRB:\n if (__feed.lastValidQueryId > 0) {\n witnet.fetchQueryResponse(__feed.lastValidQueryId);\n }\n __feed.lastValidQueryId = _latestId;\n } else {\n // Otherwise, try to delete latest query, as it was faulty\n // and we are about to post a new update request:\n try witnet.fetchQueryResponse(_latestId) {} catch {}\n }\n // Post update request to the WRB:\n _latestId = witnet.postRequest{value: _usedFunds}(\n __feed.radHash,\n querySLA\n );\n // Update latest query id:\n __feed.latestUpdateQueryId = _latestId;\n // solhint-disable avoid-tx-origin:\n emit WitnetFeedUpdateRequested(\n tx.origin, \n feedId,\n _latestId,\n _usedFunds,\n querySLA\n );\n } \n } else if (__feed.solver != address(0)) {\n _usedFunds = __requestUpdate(\n _depsOf(feedId), \n querySLA\n );\n } else {\n revert(\"WitnetPriceFeeds: unknown feed\");\n }\n if (_usedFunds < msg.value) {\n // transfer back unused funds:\n payable(msg.sender).transfer(msg.value - _usedFunds);\n }\n }\n\n}\n",
|
|
54021
|
-
"sourcePath": "/home/
|
|
54021
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/core/defaults/WitnetPriceFeedsDefault.sol",
|
|
54022
54022
|
"ast": {
|
|
54023
54023
|
"absolutePath": "project:/contracts/core/defaults/WitnetPriceFeedsDefault.sol",
|
|
54024
54024
|
"exportedSymbols": {
|
|
@@ -82383,7 +82383,7 @@
|
|
|
82383
82383
|
},
|
|
82384
82384
|
"networks": {},
|
|
82385
82385
|
"schemaVersion": "3.4.16",
|
|
82386
|
-
"updatedAt": "2025-10-
|
|
82386
|
+
"updatedAt": "2025-10-15T18:03:23.709Z",
|
|
82387
82387
|
"devdoc": {
|
|
82388
82388
|
"author": "Guillermo Díaz <guillermo@otherplane.com>",
|
|
82389
82389
|
"errors": {
|
|
@@ -6058,7 +6058,7 @@
|
|
|
6058
6058
|
"sourceMap": "467:2610:69:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;467:2610:69;;;;;;;;;;;;;;;;;",
|
|
6059
6059
|
"deployedSourceMap": "467:2610:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:975;;;;;;;;;;-1:-1:-1;567:975:69;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1260:32:84;;;1242:51;;1230:2;1215:18;567:975:69;;;;;;;;2059:763;;;;;;:::i;:::-;;:::i;:::-;;;1967:4:84;1955:17;;;1937:36;;1925:2;1910:18;2059:763:69;1787:192:84;1548:505:69;;;;;;:::i;:::-;;:::i;567:975::-;721:15;762:56;790:8;;800:17;;762:27;:56::i;:::-;752:66;;832:7;-1:-1:-1;;;;;832:19:69;;855:1;832:24;828:708;;872:22;897:46;915:8;;925:17;;897;:46::i;:::-;872:71;;957:24;1176:1;1143:9;1137:16;1110:4;1099:9;1095:20;1071:1;1042:153;1022:173;;1307:16;1297:26;;-1:-1:-1;;;;;;;;1362:75:69;;1381:7;-1:-1:-1;;;;;1362:33:69;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1362:75:69;;1337:188;;;;-1:-1:-1;;;1337:188:69;;2481:2:84;1337:188:69;;;2463:21:84;2520:2;2500:18;;;2493:30;2559:34;2539:18;;;2532:62;-1:-1:-1;;;2610:18:84;;;2603:52;2672:19;;1337:188:69;;;;;;;;;858:678;;828:708;567:975;;;;;;:::o;2059:763::-;2164:5;-1:-1:-1;;;;;;2206:40:69;;:22;2219:7;;2206:22;:::i;:::-;-1:-1:-1;;;;;;2206:40:69;;2185:126;;;;-1:-1:-1;;;2185:126:69;;3236:2:84;2185:126:69;;;3218:21:84;3275:2;3255:18;;;3248:30;3314:34;3294:18;;;3287:62;-1:-1:-1;;;3365:18:84;;;3358:37;3412:19;;2185:126:69;3034:403:84;2185:126:69;2321:28;2352:17;:7;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2352:15:69;;-1:-1:-1;;;2352:17:69:i;:::-;2408:11;;;;;;;;;;;-1:-1:-1;;;2408:11:69;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;3148:30:63;;;;;;;;3154:18;;3148:30;;;;;2321:48:69;;-1:-1:-1;3148:30:63;2477:22:69;2321:48;3148:30:63;2477:14:69;:22::i;:::-;:26;;2502:1;2477:26;:::i;:::-;2464:40;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2439:65;;2519:8;2514:120;2539:6;:13;2533:3;:19;2514:120;;;2590:33;:22;:8;2605:6;2590:14;:22::i;:::-;:31;:33::i;:::-;2576:6;2583:3;2576:11;;;;;;;;:::i;:::-;;;;;;;;;;:47;2554:6;;2514:120;;;;2644:14;2660:13;2677:41;2692:6;2715:1;2699:6;:13;:17;;;;:::i;:::-;2692:25;;;;;;;;:::i;:::-;;;;;;;2677:14;:41::i;:::-;2643:75;;;;2736:8;2728:54;;;;-1:-1:-1;;;2728:54:69;;4303:2:84;2728:54:69;;;4285:21:84;4342:2;4322:18;;;4315:30;4381:34;4361:18;;;4354:62;-1:-1:-1;;;4432:18:84;;;4425:31;4473:19;;2728:54:69;4101:397:84;2728:54:69;-1:-1:-1;2805:9:69;2059:763;-1:-1:-1;;;;;;;2059:763:69:o;1548:505::-;1715:7;-1:-1:-1;;;;;;1886:4:69;1715:7;1955:46;1973:8;;1983:17;;1955;:46::i;:::-;1945:57;;;;;;;1806:214;;;;;;;;-1:-1:-1;;;;;;4726:26:84;;;;4714:39;;4790:2;4786:15;;;;-1:-1:-1;;4782:53:84;4778:1;4769:11;;4762:74;4861:2;4852:12;;4845:28;4898:2;4889:12;;4882:28;4935:2;4926:12;;4503:441;1806:214:69;;;;-1:-1:-1;;1806:214:69;;;;;;;;;1779:255;;1806:214;1779:255;;;;;1548:505;-1:-1:-1;;;;;1548:505:69:o;2828:245::-;2952:12;3017:8;;3039:17;;2987:79;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2980:86;;2828:245;;;;;;:::o;2975:210:63:-;-1:-1:-1;;;;;;;;;;;;;;;;;3148:30:63;;;;;;;;3154:18;;3148:30;;3107:15;;;3148:30;;;;;;;;2975:210::o;23284:364::-;23362:8;23382;23451:6;:11;;;23393:55;23401:4;:9;;;23412:4;:9;;;23423:6;:11;;;23436:6;:11;;;23393:7;:55::i;:::-;:69;;;;:::i;:::-;23382:80;;23472:170;23498:9;;23486;;;;:21;;23498:9;23486:21;:::i;:::-;23479:3;:28;23472:170;;23523:5;;;;:::i;:::-;;;;23620:6;:11;;;23548:69;23575:4;:9;;;23569:3;:15;;;;:::i;:::-;23556:9;;:29;;;;:::i;:::-;23587:3;23592:6;:11;;;23605:6;:11;;;23548:7;:69::i;:::-;:83;;;;:::i;:::-;23542:89;;23472:170;;;23372:276;23284:364;;;;:::o;21298:141::-;-1:-1:-1;;;;;;;;;;;;;;;;;21406:26:63;21412:4;21418:6;21426:5;21406;:26::i;5357:266::-;5417:13;5442:17;5473:4;:9;;;5462:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5462:21:63;;5442:41;;5493:11;5544:2;5539:3;5535:12;5525:22;;5559:37;5567:6;5575:4;:9;;;5586:4;:9;;;5559:7;:37::i;24132:537:64:-;24207:8;24217:4;24266:9;24261:360;24291:3;24285:17;24281:1;:21;24261:360;;;24382:1;24376:2;24365:3;24370:1;24359:13;;;;;;;;:::i;:::-;;;;;;;24353:25;:20;24352:31;;;:90;;;24441:1;24435:2;24424:3;24429:1;24418:13;;;;;;;;:::i;:::-;;;;;;;24412:25;:20;24411:31;;24352:90;24327:192;;;-1:-1:-1;24491:1:64;;;;-1:-1:-1;24132:537:64;-1:-1:-1;;24132:537:64:o;24327:192::-;24604:1;24600;24586:3;24580:17;:21;:25;24573:2;:33;24567:2;24556:3;24561:1;24550:13;;;;;;;;:::i;:::-;;;;;;;24544:25;:20;24543:63;;24536:70;;;;;24304:3;;24261:360;;;-1:-1:-1;24642:3:64;;24647:4;;-1:-1:-1;24132:537:64;-1:-1:-1;24132:537:64:o;15567:1453:63:-;15666:4;15693:7;15666:4;15733:20;;;15729:1251;;15786:2;15773:9;:15;15769:1201;;15808:12;15842:13;;15838:110;;15926:1;15907:14;15912:9;15907:2;:14;:::i;:::-;15902:20;;:1;:20;:::i;:::-;15896:27;;:1;:27;:::i;:::-;:31;;;;:::i;:::-;15894:34;;-1:-1:-1;15838:110:63;16031:16;;16027:27;;15966:18;16105:9;16085:17;16095:7;16085;:17;:::i;:::-;:29;;;;:::i;:::-;16191:10;;16074:40;;-1:-1:-1;16187:21:63;;16228:228;16246:10;16235:7;:21;16228:228;;16291:3;16284;:10;16280:64;;16327:17;16337:7;16327;:17;:::i;:::-;16320:24;;;;;;;;;;16280:64;16366:5;;;;:::i;:::-;;;;16431:4;16425:3;16419:10;16415:21;16404:32;;16228:228;;;16480:3;16473:10;;;;;;;;;;15769:1201;-1:-1:-1;16620:31:63;;;16571:12;;16671:285;16692:19;16702:9;16692:7;:19;:::i;:::-;16685:3;:26;16671:285;;16803:25;;;16855:16;;;16851:56;;16904:3;16897:10;;;;;;;;16851:56;16929:8;16936:1;16929:8;;:::i;:::-;;;16720:236;16713:5;;;;;:::i;:::-;;;;16671:285;;;16504:466;15769:1201;16996:17;17006:7;16996;:17;:::i;:::-;16989:24;15567:1453;-1:-1:-1;;;;;;;15567:1453:63:o;20323:504::-;-1:-1:-1;;;;;;;;;;;;;;;;;20445:8:63;20456:55;20464:4;:9;;;20475:4;:9;;;20486:6;:11;;;20499:6;:11;;;20456:7;:55::i;:::-;20534:9;;;;;;20521:10;;;:22;;;;20572:9;20445:66;;-1:-1:-1;20566:15:63;;20445:66;20566:15;:::i;:::-;20553:28;;20614:9;;20602;;;;:21;;20614:9;20602:21;:::i;:::-;20595:3;:28;20591:208;;20676:1;20664:13;;20591:208;;;20734:11;;20721:10;;:24;;20734:11;20721:24;:::i;:::-;20708:37;;:4;;:37;;;;;:::i;:::-;;;-1:-1:-1;20777:11:63;;20771:17;;:3;:17;:::i;:::-;20759:9;;;:29;20591:208;-1:-1:-1;20815:5:63;;20323:504;-1:-1:-1;;;20323:504:63:o;2140:635::-;2278:2;2270:4;:10;2264:170;;2349:11;;2335:26;;2388:11;2397:2;2342:5;2388:11;:::i;:::-;;-1:-1:-1;2413:10:63;2421:2;2413:10;;:::i;:::-;;-1:-1:-1;2282:10:63;2290:2;2282:10;;:::i;:::-;;;2264:170;;;-1:-1:-1;;2517:8:63;;2513:69;;2570:1;2557:9;2562:4;2557:2;:9;:::i;:::-;2549:18;;:3;:18;:::i;:::-;:22;;;;:::i;:::-;2541:30;;2513:69;2633:11;;2690:12;;2686:24;;2646:10;;2629:28;2737:21;;;;2723:36;;;-1:-1:-1;2140:635:63:o;14:347:84:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:84;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:717::-;456:6;464;472;480;533:2;521:9;512:7;508:23;504:32;501:52;;;549:1;546;539:12;501:52;589:9;576:23;618:18;659:2;651:6;648:14;645:34;;;675:1;672;665:12;645:34;714:58;764:7;755:6;744:9;740:22;714:58;:::i;:::-;791:8;;-1:-1:-1;688:84:84;-1:-1:-1;879:2:84;864:18;;851:32;;-1:-1:-1;895:16:84;;;892:36;;;924:1;921;914:12;892:36;;963:60;1015:7;1004:8;993:9;989:24;963:60;:::i;:::-;366:717;;;;-1:-1:-1;1042:8:84;-1:-1:-1;;;;366:717:84:o;1304:478::-;1384:6;1392;1400;1453:2;1441:9;1432:7;1428:23;1424:32;1421:52;;;1469:1;1466;1459:12;1421:52;1505:9;1492:23;1482:33;;1566:2;1555:9;1551:18;1538:32;1593:18;1585:6;1582:30;1579:50;;;1625:1;1622;1615:12;1579:50;1664:58;1714:7;1705:6;1694:9;1690:22;1664:58;:::i;:::-;1304:478;;1741:8;;-1:-1:-1;1638:84:84;;-1:-1:-1;;;;1304:478:84:o;1984:290::-;2053:6;2106:2;2094:9;2085:7;2081:23;2077:32;2074:52;;;2122:1;2119;2112:12;2074:52;2148:16;;-1:-1:-1;;;;;;2193:32:84;;2183:43;;2173:71;;2240:1;2237;2230:12;2173:71;2263:5;1984:290;-1:-1:-1;;;1984:290:84:o;2702:327::-;-1:-1:-1;;;;;;2822:19:84;;2902:11;;;;2933:1;2925:10;;2922:101;;;3010:2;3004;2997:3;2994:1;2990:11;2987:1;2983:19;2979:28;2975:2;2971:37;2967:46;2958:55;;2922:101;;;2702:327;;;;:::o;3442:127::-;3503:10;3498:3;3494:20;3491:1;3484:31;3534:4;3531:1;3524:15;3558:4;3555:1;3548:15;3574:125;3639:9;;;3660:10;;;3657:36;;;3673:18;;:::i;:::-;3574:125;;;;:::o;3704:127::-;3765:10;3760:3;3756:20;3753:1;3746:31;3796:4;3793:1;3786:15;3820:4;3817:1;3810:15;3836:127;3897:10;3892:3;3888:20;3885:1;3878:31;3928:4;3925:1;3918:15;3952:4;3949:1;3942:15;3968:128;4035:9;;;4056:11;;;4053:37;;;4070:18;;:::i;4949:424::-;5188:6;5180;5175:3;5162:33;5144:3;5223:6;5218:3;5214:16;5250:1;5246:2;5239:13;5286:6;5278;5274:2;5261:32;5347:1;5312:15;;5336:13;;;-1:-1:-1;5312:15:84;;4949:424;-1:-1:-1;;;;4949:424:84:o;5378:135::-;5417:3;5438:17;;;5435:43;;5458:18;;:::i;:::-;-1:-1:-1;5505:1:84;5494:13;;5378:135::o;5518:168::-;5591:9;;;5622;;5639:15;;;5633:22;;5619:37;5609:71;;5660:18;;:::i;5691:416::-;5780:1;5817:5;5780:1;5831:270;5852:7;5842:8;5839:21;5831:270;;;5911:4;5907:1;5903:6;5899:17;5893:4;5890:27;5887:53;;;5920:18;;:::i;:::-;5970:7;5960:8;5956:22;5953:55;;;5990:16;;;;5953:55;6069:22;;;;6029:15;;;;5831:270;;;5835:3;5691:416;;;;;:::o;6112:806::-;6161:5;6191:8;6181:80;;-1:-1:-1;6232:1:84;6246:5;;6181:80;6280:4;6270:76;;-1:-1:-1;6317:1:84;6331:5;;6270:76;6362:4;6380:1;6375:59;;;;6448:1;6443:130;;;;6355:218;;6375:59;6405:1;6396:10;;6419:5;;;6443:130;6480:3;6470:8;6467:17;6464:43;;;6487:18;;:::i;:::-;-1:-1:-1;;6543:1:84;6529:16;;6558:5;;6355:218;;6657:2;6647:8;6644:16;6638:3;6632:4;6629:13;6625:36;6619:2;6609:8;6606:16;6601:2;6595:4;6592:12;6588:35;6585:77;6582:159;;;-1:-1:-1;6694:19:84;;;6726:5;;6582:159;6773:34;6798:8;6792:4;6773:34;:::i;:::-;6843:6;6839:1;6835:6;6831:19;6822:7;6819:32;6816:58;;;6854:18;;:::i;:::-;6892:20;;6112:806;-1:-1:-1;;;6112:806:84:o;6923:131::-;6983:5;7012:36;7039:8;7033:4;7012:36;:::i",
|
|
6060
6060
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../interfaces/IWitnetPriceSolver.sol\";\nimport \"../interfaces/IWitnetPriceSolverDeployer.sol\";\n\nimport \"../libs/Slices.sol\";\n\n/// @title Ancillary deployable library for WitnetPriceFeeds.\n/// @dev Features:\n/// @dev - deployment of counter-factual IWitnetPriceSolver instances.\n/// @dev - validation of feed caption strings.\n/// @author The Witnet Foundation.\nlibrary WitnetPriceFeedsLib {\n\n using Slices for string;\n using Slices for Slices.Slice;\n\n function deployPriceSolver(\n bytes calldata initcode,\n bytes calldata constructorParams\n )\n external\n returns (address _solver)\n {\n _solver = determinePriceSolverAddress(initcode, constructorParams);\n if (_solver.code.length == 0) {\n bytes memory _bytecode = _completeInitCode(initcode, constructorParams);\n address _createdContract;\n assembly {\n _createdContract := create2(\n 0, \n add(_bytecode, 0x20),\n mload(_bytecode), \n 0\n )\n }\n // assert(_solver == _createdContract); // fails on TEN chains\n _solver = _createdContract;\n require(\n IWitnetPriceSolver(_solver).specs() == type(IWitnetPriceSolver).interfaceId,\n \"WitnetPriceFeedsLib: uncompliant solver implementation\"\n );\n }\n }\n\n function determinePriceSolverAddress(\n bytes calldata initcode,\n bytes calldata constructorParams\n )\n public view\n returns (address)\n {\n return address(\n uint160(uint(keccak256(\n abi.encodePacked(\n bytes1(0xff),\n address(this),\n bytes32(0),\n keccak256(_completeInitCode(initcode, constructorParams))\n )\n )))\n );\n }\n\n function validateCaption(bytes32 prefix, string calldata caption)\n external pure\n returns (uint8)\n {\n require(\n bytes6(bytes(caption)) == bytes6(prefix),\n \"WitnetPriceFeedsLib: bad caption prefix\"\n );\n Slices.Slice memory _caption = caption.toSlice();\n Slices.Slice memory _delim = string(\"-\").toSlice();\n string[] memory _parts = new string[](_caption.count(_delim) + 1);\n for (uint _ix = 0; _ix < _parts.length; _ix ++) {\n _parts[_ix] = _caption.split(_delim).toString();\n }\n (uint _decimals, bool _success) = Witnet.tryUint(_parts[_parts.length - 1]);\n require(_success, \"WitnetPriceFeedsLib: bad decimals\");\n return uint8(_decimals);\n }\n\n function _completeInitCode(bytes calldata initcode, bytes calldata constructorParams)\n private pure\n returns (bytes memory)\n {\n return abi.encodePacked(\n initcode,\n constructorParams\n );\n } \n\n}\n",
|
|
6061
|
-
"sourcePath": "/home/
|
|
6061
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/libs/WitnetPriceFeedsLib.sol",
|
|
6062
6062
|
"ast": {
|
|
6063
6063
|
"absolutePath": "project:/contracts/libs/WitnetPriceFeedsLib.sol",
|
|
6064
6064
|
"exportedSymbols": {
|
|
@@ -9387,7 +9387,7 @@
|
|
|
9387
9387
|
},
|
|
9388
9388
|
"networks": {},
|
|
9389
9389
|
"schemaVersion": "3.4.16",
|
|
9390
|
-
"updatedAt": "2025-10-
|
|
9390
|
+
"updatedAt": "2025-10-15T18:03:23.860Z",
|
|
9391
9391
|
"devdoc": {
|
|
9392
9392
|
"author": "The Witnet Foundation.",
|
|
9393
9393
|
"details": "Features:- deployment of counter-factual IWitnetPriceSolver instances.- validation of feed caption strings.",
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
"sourceMap": "",
|
|
110
110
|
"deployedSourceMap": "",
|
|
111
111
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"../data/WitnetPriceFeedsData.sol\";\nimport \"../interfaces/IWitnetPriceFeeds.sol\";\n\nabstract contract WitnetPriceSolverBase\n is\n IWitnetPriceSolver,\n WitnetPriceFeedsData\n{\n address public immutable override delegator;\n\n modifier onlyDelegator {\n require(\n address(this) == delegator,\n \"WitnetPriceSolverBase: not the delegator\"\n );\n _;\n }\n\n constructor() {\n delegator = msg.sender;\n }\n\n function specs() external pure returns (bytes4) {\n return type(IWitnetPriceSolver).interfaceId;\n }\n\n function validate(bytes4 feedId, string[] calldata deps) virtual override external {\n bytes32 _depsFlag;\n uint256 _innerDecimals;\n require(\n deps.length <= 8,\n \"WitnetPriceSolverBase: too many dependencies\"\n );\n for (uint _ix = 0; _ix < deps.length; _ix ++) {\n bytes4 _depsId4 = bytes4(keccak256(bytes(deps[_ix])));\n Record storage __depsFeed = __records_(_depsId4);\n require(\n __depsFeed.index > 0, \n string(abi.encodePacked(\n \"WitnetPriceSolverBase: unsupported \",\n deps[_ix]\n ))\n );\n require(\n _depsId4 != feedId, \n string(abi.encodePacked(\n \"WitnetPriceSolverBase: loop on \",\n deps[_ix]\n ))\n );\n _depsFlag |= (bytes32(_depsId4) >> (32 * _ix));\n _innerDecimals += __depsFeed.decimals;\n }\n Record storage __feed = __records_(feedId);\n __feed.solverReductor = int(uint(__feed.decimals)) - int(_innerDecimals);\n __feed.solverDepsFlag = _depsFlag;\n }\n}",
|
|
112
|
-
"sourcePath": "/home/
|
|
112
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/apps/WitnetPriceSolverBase.sol",
|
|
113
113
|
"ast": {
|
|
114
114
|
"absolutePath": "project:/contracts/apps/WitnetPriceSolverBase.sol",
|
|
115
115
|
"exportedSymbols": {
|
|
@@ -2593,7 +2593,7 @@
|
|
|
2593
2593
|
},
|
|
2594
2594
|
"networks": {},
|
|
2595
2595
|
"schemaVersion": "3.4.16",
|
|
2596
|
-
"updatedAt": "2025-10-
|
|
2596
|
+
"updatedAt": "2025-10-15T18:03:23.544Z",
|
|
2597
2597
|
"devdoc": {
|
|
2598
2598
|
"kind": "dev",
|
|
2599
2599
|
"methods": {},
|
|
@@ -6042,7 +6042,7 @@
|
|
|
6042
6042
|
"sourceMap": "255:5023:27:-:0;;;505:17;;;;;;;;;;255:5023;;;;;;",
|
|
6043
6043
|
"deployedSourceMap": "255:5023:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;725:23;751:16;:14;:16::i;:::-;725:42;;1110:4;1104:11;1149:14;1146:1;1141:3;1128:36;1252:1;1249;1233:14;1228:3;1211:15;1204:5;1191:63;1279:16;1331:4;1328:1;1323:3;1308:28;1356:6;1379:116;;;;1635:4;1630:3;1623:17;1379:116;1471:4;1466:3;1459:17;1737:108;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;178:32:84;;;160:51;;148:2;133:18;1737:108:27;;;;;;;;2133:2730;;;;;;;;;;-1:-1:-1;2133:2730:27;;;;;:::i;:::-;;:::i;:::-;;;1840:14:84;;1833:22;1815:41;;1803:2;1788:18;2133:2730:27;1675:187:84;1737:108:27;5193:66;1810:28;-1:-1:-1;;;;;1810:28:27;;1737:108::o;2133:2730::-;2228:4;-1:-1:-1;;;;;2302:32:27;;2294:77;;;;-1:-1:-1;;;2294:77:27;;2069:2:84;2294:77:27;;;2051:21:84;;;2088:18;;;2081:30;2147:34;2127:18;;;2120:62;2199:18;;2294:77:27;;;;;;;;;2382:26;2411:16;:14;:16::i;:::-;2382:45;-1:-1:-1;;;;;;2441:32:27;;;2437:1274;;2591:18;-1:-1:-1;;;;;2569:40:27;:18;-1:-1:-1;;;;;2569:40:27;;2561:84;;;;-1:-1:-1;;;2561:84:27;;2430:2:84;2561:84:27;;;2412:21:84;2469:2;2449:18;;;2442:30;2508:33;2488:18;;;2481:61;2559:18;;2561:84:27;2228:355:84;2561:84:27;2758:18;-1:-1:-1;;;;;2746:44:27;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2746:46:27;;;;;;;;-1:-1:-1;;2746:46:27;;;;;;;;;;;;:::i;:::-;;;2742:258;;2933:52;;-1:-1:-1;;;2933:52:27;;3072:2:84;2933:52:27;;;3054:21:84;3111:2;3091:18;;;3084:30;3150:34;3130:18;;;3123:62;-1:-1:-1;;;3201:18:84;;;3194:40;3251:19;;2933:52:27;2870:406:84;2742:258:27;2848:13;2840:53;;;;-1:-1:-1;;;2840:53:27;;3483:2:84;2840:53:27;;;3465:21:84;3522:2;3502:18;;;3495:30;3561:29;3541:18;;;3534:57;3608:18;;2840:53:27;3281:351:84;2840:53:27;-1:-1:-1;3200:122:27;;3294:10;3200:122;;;160:51:84;3110:15:27;;;;-1:-1:-1;;;;;3151:31:27;;;133:18:84;;3200:122:27;;;-1:-1:-1;;3200:122:27;;;;;;;;;;;;;;-1:-1:-1;;;;;3200:122:27;-1:-1:-1;;;3200:122:27;;;3151:185;;;3200:122;3151:185;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:227;;;;3358:10;3350:62;;;;-1:-1:-1;;;3350:62:27;;;;;;;:::i;:::-;3445:7;3434:27;;;;;;;;;;;;:::i;:::-;3426:67;;;;-1:-1:-1;;;3426:67:27;;4794:2:84;3426:67:27;;;4776:21:84;4833:2;4813:18;;;4806:30;4872:29;4852:18;;;4845:57;4919:18;;3426:67:27;4592:351:84;3426:67:27;3595:18;-1:-1:-1;;;;;3583:45:27;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3544:18;-1:-1:-1;;;;;3532:45:27;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:98;3507:193;;;;-1:-1:-1;;;3507:193:27;;5339:2:84;3507:193:27;;;5321:21:84;5378:2;5358:18;;;5351:30;5417:34;5397:18;;;5390:62;-1:-1:-1;;;5468:18:84;;;5461:34;5512:19;;3507:193:27;5137:400:84;3507:193:27;2475:1236;;2437:1274;3793:20;3815:24;3843:18;-1:-1:-1;;;;;3843:31:27;3966:9;3888:101;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3888:101:27;;;;;;;;;;;;;;-1:-1:-1;;;;;3888:101:27;-1:-1:-1;;;3888:101:27;;;3843:156;;;3888:101;3843:156;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3792:207;;;;4014:15;4009:335;;4070:2;4049:11;:18;:23;4045:289;;;4092:44;;-1:-1:-1;;;4092:44:27;;6241:2:84;4092:44:27;;;6223:21:84;6280:2;6260:18;;;6253:30;6319:34;6299:18;;;6292:62;-1:-1:-1;;;6370:18:84;;;6363:32;6412:19;;4092:44:27;6039:398:84;4045:289:27;4238:4;4225:11;4221:22;4206:37;;4296:11;4285:33;;;;;;;;;;;;:::i;:::-;4278:41;;-1:-1:-1;;;4278:41:27;;;;;;;;:::i;4045:289::-;5193:66;4435:49;;-1:-1:-1;;;;;;4435:49:27;-1:-1:-1;;;;;4435:49:27;;;;;;;;4504:28;;;;-1:-1:-1;;4504:28:27;4658:18;-1:-1:-1;;;;;4646:44:27;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4646:46:27;;;;;;;;-1:-1:-1;;4646:46:27;;;;;;;;;;;;:::i;:::-;;;4642:215;;4796:50;;-1:-1:-1;;;4796:50:27;;;;;;;:::i;4642:215::-;4743:13;-1:-1:-1;4736:20:27;;-1:-1:-1;;;4736:20:27;2133:2730;;;;;:::o;222:127:84:-;283:10;278:3;274:20;271:1;264:31;314:4;311:1;304:15;338:4;335:1;328:15;354:275;425:2;419:9;490:2;471:13;;-1:-1:-1;;467:27:84;455:40;;525:18;510:34;;546:22;;;507:62;504:88;;;572:18;;:::i;:::-;608:2;601:22;354:275;;-1:-1:-1;354:275:84:o;634:186::-;682:4;715:18;707:6;704:30;701:56;;;737:18;;:::i;:::-;-1:-1:-1;803:2:84;782:15;-1:-1:-1;;778:29:84;809:4;774:40;;634:186::o;825:845::-;902:6;910;963:2;951:9;942:7;938:23;934:32;931:52;;;979:1;976;969:12;931:52;1005:23;;-1:-1:-1;;;;;1057:31:84;;1047:42;;1037:70;;1103:1;1100;1093:12;1037:70;1126:5;-1:-1:-1;1182:2:84;1167:18;;1154:32;1209:18;1198:30;;1195:50;;;1241:1;1238;1231:12;1195:50;1264:22;;1317:4;1309:13;;1305:27;-1:-1:-1;1295:55:84;;1346:1;1343;1336:12;1295:55;1382:2;1369:16;1407:48;1423:31;1451:2;1423:31;:::i;:::-;1407:48;:::i;:::-;1478:2;1471:5;1464:17;1518:7;1513:2;1508;1504;1500:11;1496:20;1493:33;1490:53;;;1539:1;1536;1529:12;1490:53;1594:2;1589;1585;1581:11;1576:2;1569:5;1565:14;1552:45;1638:1;1633:2;1628;1621:5;1617:14;1613:23;1606:34;1659:5;1649:15;;;;;825:845;;;;;:::o;2588:277::-;2655:6;2708:2;2696:9;2687:7;2683:23;2679:32;2676:52;;;2724:1;2721;2714:12;2676:52;2756:9;2750:16;2809:5;2802:13;2795:21;2788:5;2785:32;2775:60;;2831:1;2828;2821:12;2775:60;2854:5;2588:277;-1:-1:-1;;;2588:277:84:o;3637:250::-;3722:1;3732:113;3746:6;3743:1;3740:13;3732:113;;;3822:11;;;3816:18;3803:11;;;3796:39;3768:2;3761:10;3732:113;;;-1:-1:-1;;3879:1:84;3861:16;;3854:27;3637:250::o;3892:287::-;4021:3;4059:6;4053:13;4075:66;4134:6;4129:3;4122:4;4114:6;4110:17;4075:66;:::i;:::-;4157:16;;;;;3892:287;-1:-1:-1;;3892:287:84:o;4184:403::-;4386:2;4368:21;;;4425:2;4405:18;;;4398:30;4464:34;4459:2;4444:18;;4437:62;-1:-1:-1;;;4530:2:84;4515:18;;4508:37;4577:3;4562:19;;4184:403::o;4948:184::-;5018:6;5071:2;5059:9;5050:7;5046:23;5042:32;5039:52;;;5087:1;5084;5077:12;5039:52;-1:-1:-1;5110:16:84;;4948:184;-1:-1:-1;4948:184:84:o;5542:270::-;5583:3;5621:5;5615:12;5648:6;5643:3;5636:19;5664:76;5733:6;5726:4;5721:3;5717:14;5710:4;5703:5;5699:16;5664:76;:::i;:::-;5794:2;5773:15;-1:-1:-1;;5769:29:84;5760:39;;;;5801:4;5756:50;;5542:270;-1:-1:-1;;5542:270:84:o;5817:217::-;5964:2;5953:9;5946:21;5927:4;5984:44;6024:2;6013:9;6009:18;6001:6;5984:44;:::i;6442:648::-;6522:6;6575:2;6563:9;6554:7;6550:23;6546:32;6543:52;;;6591:1;6588;6581:12;6543:52;6624:9;6618:16;6657:18;6649:6;6646:30;6643:50;;;6689:1;6686;6679:12;6643:50;6712:22;;6765:4;6757:13;;6753:27;-1:-1:-1;6743:55:84;;6794:1;6791;6784:12;6743:55;6823:2;6817:9;6848:48;6864:31;6892:2;6864:31;:::i;6848:48::-;6919:2;6912:5;6905:17;6959:7;6954:2;6949;6945;6941:11;6937:20;6934:33;6931:53;;;6980:1;6977;6970:12;6931:53;6993:67;7057:2;7052;7045:5;7041:14;7036:2;7032;7028:11;6993:67;:::i;:::-;7079:5;6442:648;-1:-1:-1;;;;;6442:648:84:o",
|
|
6044
6044
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../patterns/Upgradeable.sol\";\n\n/// @title WitnetProxy: upgradable delegate-proxy contract. \n/// @author Guillermo Díaz <guillermo@otherplane.com>\ncontract WitnetProxy {\n\n /// Event emitted every time the implementation gets updated.\n event Upgraded(address indexed implementation); \n\n /// Constructor with no params as to ease eventual support of Singleton pattern (i.e. ERC-2470).\n constructor () {}\n\n receive() virtual external payable {}\n\n /// Payable fallback accepts delegating calls to payable functions. \n fallback() external payable { /* solhint-disable no-complex-fallback */\n address _implementation = implementation();\n assembly { /* solhint-disable avoid-low-level-calls */\n // Gas optimized delegate call to 'implementation' contract.\n // Note: `msg.data`, `msg.sender` and `msg.value` will be passed over \n // to actual implementation of `msg.sig` within `implementation` contract.\n let ptr := mload(0x40)\n calldatacopy(ptr, 0, calldatasize())\n let result := delegatecall(gas(), _implementation, ptr, calldatasize(), 0, 0)\n let size := returndatasize()\n returndatacopy(ptr, 0, size)\n switch result\n case 0 { \n // pass back revert message:\n revert(ptr, size) \n }\n default {\n // pass back same data as returned by 'implementation' contract:\n return(ptr, size) \n }\n }\n }\n\n /// Returns proxy's current implementation address.\n function implementation() public view returns (address) {\n return __proxySlot().implementation;\n }\n\n /// Upgrades the `implementation` address.\n /// @param _newImplementation New implementation address.\n /// @param _initData Raw data with which new implementation will be initialized.\n /// @return Returns whether new implementation would be further upgradable, or not.\n function upgradeTo(address _newImplementation, bytes memory _initData)\n public returns (bool)\n {\n // New implementation cannot be null:\n require(_newImplementation != address(0), \"WitnetProxy: null implementation\");\n\n address _oldImplementation = implementation();\n if (_oldImplementation != address(0)) {\n // New implementation address must differ from current one:\n require(_newImplementation != _oldImplementation, \"WitnetProxy: nothing to upgrade\");\n\n // Assert whether current implementation is intrinsically upgradable:\n try Upgradeable(_oldImplementation).isUpgradable() returns (bool _isUpgradable) {\n require(_isUpgradable, \"WitnetProxy: not upgradable\");\n } catch {\n revert(\"WitnetProxy: unable to check upgradability\");\n }\n\n // Assert whether current implementation allows `msg.sender` to upgrade the proxy:\n (bool _wasCalled, bytes memory _result) = _oldImplementation.delegatecall(\n abi.encodeWithSignature(\n \"isUpgradableFrom(address)\",\n msg.sender\n )\n );\n require(_wasCalled, \"WitnetProxy: uncompliant implementation\");\n require(abi.decode(_result, (bool)), \"WitnetProxy: not authorized\");\n require(\n Upgradeable(_oldImplementation).proxiableUUID() == Upgradeable(_newImplementation).proxiableUUID(),\n \"WitnetProxy: proxiableUUIDs mismatch\"\n );\n }\n\n // Initialize new implementation within proxy-context storage:\n (bool _wasInitialized, bytes memory _returnData) = _newImplementation.delegatecall(\n abi.encodeWithSignature(\n \"initialize(bytes)\",\n _initData\n )\n );\n if (!_wasInitialized) {\n if (_returnData.length < 68) {\n revert(\"WitnetProxy: initialization failed\");\n } else {\n assembly {\n _returnData := add(_returnData, 0x04)\n }\n revert(abi.decode(_returnData, (string)));\n }\n }\n\n // If all checks and initialization pass, update implementation address:\n __proxySlot().implementation = _newImplementation;\n \n emit Upgraded(_newImplementation);\n\n // Asserts new implementation complies w/ minimal implementation of Upgradeable interface:\n try Upgradeable(_newImplementation).isUpgradable() returns (bool _isUpgradable) {\n return _isUpgradable;\n }\n catch {\n revert (\"WitnetProxy: uncompliant implementation\");\n }\n }\n\n /// @dev Complying with EIP-1967, retrieves storage struct containing proxy's current implementation address.\n function __proxySlot() private pure returns (Proxiable.ProxiableSlot storage _slot) {\n assembly {\n // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)\n _slot.slot := 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\n }\n }\n\n}\n",
|
|
6045
|
-
"sourcePath": "/home/
|
|
6045
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/core/WitnetProxy.sol",
|
|
6046
6046
|
"ast": {
|
|
6047
6047
|
"absolutePath": "project:/contracts/core/WitnetProxy.sol",
|
|
6048
6048
|
"exportedSymbols": {
|
|
@@ -9487,7 +9487,7 @@
|
|
|
9487
9487
|
},
|
|
9488
9488
|
"networks": {},
|
|
9489
9489
|
"schemaVersion": "3.4.16",
|
|
9490
|
-
"updatedAt": "2025-10-
|
|
9490
|
+
"updatedAt": "2025-10-15T18:03:23.570Z",
|
|
9491
9491
|
"devdoc": {
|
|
9492
9492
|
"author": "Guillermo Díaz <guillermo@otherplane.com>",
|
|
9493
9493
|
"kind": "dev",
|
|
@@ -506,7 +506,7 @@
|
|
|
506
506
|
"sourceMap": "",
|
|
507
507
|
"deployedSourceMap": "",
|
|
508
508
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"./interfaces/IWitnetOracleEvents.sol\";\nimport \"./interfaces/IWitnetRandomness.sol\";\nimport \"./interfaces/IWitnetRandomnessEvents.sol\";\n\nabstract contract WitnetRandomness\n is\n IWitnetOracleEvents,\n IWitnetRandomness,\n IWitnetRandomnessEvents\n{\n function class() virtual external view returns (string memory);\n function specs() virtual external view returns (bytes4);\n}\n",
|
|
509
|
-
"sourcePath": "/home/
|
|
509
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/WitnetRandomness.sol",
|
|
510
510
|
"ast": {
|
|
511
511
|
"absolutePath": "project:/contracts/WitnetRandomness.sol",
|
|
512
512
|
"exportedSymbols": {
|
|
@@ -803,7 +803,7 @@
|
|
|
803
803
|
},
|
|
804
804
|
"networks": {},
|
|
805
805
|
"schemaVersion": "3.4.16",
|
|
806
|
-
"updatedAt": "2025-10-
|
|
806
|
+
"updatedAt": "2025-10-15T18:03:23.536Z",
|
|
807
807
|
"devdoc": {
|
|
808
808
|
"kind": "dev",
|
|
809
809
|
"methods": {
|
|
@@ -339,7 +339,7 @@
|
|
|
339
339
|
"sourceMap": "",
|
|
340
340
|
"deployedSourceMap": "",
|
|
341
341
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"./WitnetConsumer.sol\";\nimport \"../WitnetRequest.sol\";\n\nabstract contract WitnetRandomnessRequestConsumer\n is\n WitnetConsumer\n{\n using Witnet for bytes;\n using WitnetCBOR for WitnetCBOR.CBOR;\n using WitnetV2 for bytes32;\n using WitnetV2 for WitnetV2.RadonSLA;\n\n bytes32 internal immutable __witnetRandomnessRadHash;\n\n /// @param _wrb Address of the WitnetOracle contract.\n /// @param _baseFeeOverheadPercentage Percentage over base fee to pay as on every data request.\n /// @param _callbackGasLimit Maximum gas to be spent by the IWitnetConsumer's callback methods.\n constructor(\n WitnetOracle _wrb, \n uint16 _baseFeeOverheadPercentage,\n uint24 _callbackGasLimit\n )\n UsingWitnet(_wrb)\n WitnetConsumer(_callbackGasLimit)\n {\n // On-chain building of the Witnet Randomness Request:\n {\n WitnetRequestBytecodes _registry = witnet().registry();\n // Build own Witnet Randomness Request:\n bytes32[] memory _retrievals = new bytes32[](1);\n _retrievals[0] = _registry.verifyRadonRetrieval(\n Witnet.RadonDataRequestMethods.RNG,\n \"\", // no url\n \"\", // no body\n new string[2][](0), // no headers\n hex\"80\" // no retrieval script\n );\n Witnet.RadonFilter[] memory _filters;\n bytes32 _aggregator = _registry.verifyRadonReducer(Witnet.RadonReducer({\n opcode: Witnet.RadonReducerOpcodes.Mode,\n filters: _filters // no filters\n }));\n bytes32 _tally = _registry.verifyRadonReducer(Witnet.RadonReducer({\n opcode: Witnet.RadonReducerOpcodes.ConcatenateAndHash,\n filters: _filters // no filters\n }));\n __witnetRandomnessRadHash = _registry.verifyRadonRequest(\n _retrievals,\n _aggregator,\n _tally,\n 32, // 256 bits of pure entropy ;-)\n new string[][](_retrievals.length)\n );\n }\n __witnetBaseFeeOverheadPercentage = _baseFeeOverheadPercentage;\n }\n\n function _witnetEstimateEvmReward() virtual override internal view returns (uint256) {\n return _witnetEstimateEvmReward(32);\n }\n\n function _witnetRandomUniformUint32(uint32 _range, uint256 _nonce, bytes32 _seed) internal pure returns (uint32) {\n uint256 _number = uint256(\n keccak256(\n abi.encode(_seed, _nonce)\n )\n ) & uint256(2 ** 224 - 1);\n return uint32((_number * _range) >> 224);\n }\n\n function _witnetReadRandomizeFromResultValue(WitnetCBOR.CBOR calldata cborValue) internal pure returns (bytes32) {\n return cborValue.readBytes().toBytes32();\n }\n\n function __witnetRandomize(uint256 _witnetEvmReward) virtual internal returns (uint256) {\n return __witnetRandomize(_witnetEvmReward, __witnetDefaultSLA);\n }\n\n function __witnetRandomize(\n uint256 _witnetEvmReward,\n WitnetV2.RadonSLA memory _witnetQuerySLA\n )\n virtual internal \n returns (uint256 _randomizeId)\n {\n return __witnet.postRequestWithCallback{\n value: _witnetEvmReward\n }(\n __witnetRandomnessRadHash,\n _witnetQuerySLA,\n __witnetCallbackGasLimit\n );\n }\n}\n",
|
|
342
|
-
"sourcePath": "/home/
|
|
342
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/apps/WitnetRandomnessRequestConsumer.sol",
|
|
343
343
|
"ast": {
|
|
344
344
|
"absolutePath": "project:/contracts/apps/WitnetRandomnessRequestConsumer.sol",
|
|
345
345
|
"exportedSymbols": {
|
|
@@ -3556,7 +3556,7 @@
|
|
|
3556
3556
|
},
|
|
3557
3557
|
"networks": {},
|
|
3558
3558
|
"schemaVersion": "3.4.16",
|
|
3559
|
-
"updatedAt": "2025-10-
|
|
3559
|
+
"updatedAt": "2025-10-15T18:03:23.545Z",
|
|
3560
3560
|
"devdoc": {
|
|
3561
3561
|
"kind": "dev",
|
|
3562
3562
|
"methods": {
|
|
@@ -23519,7 +23519,7 @@
|
|
|
23519
23519
|
"sourceMap": "376:20746:23:-:0;;;1132:1578;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1266:7;1235:9;-1:-1:-1;;;;;1273:26:1;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:1;;1350:1;1322:31;;;748:51:84;721:18;;1322:31:1;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;-1:-1:-1;;;;;;;;1189:47:16;;:4;-1:-1:-1;;;;;1189:10:16;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1189:47:16;;1168:131;;;;-1:-1:-1;;;1168:131:16;;1307:2:84;1168:131:16;;;1289:21:84;1346:2;1326:18;;;1319:30;1385:34;1365:18;;;1358:62;-1:-1:-1;;;1436:18:84;;;1429:35;1481:19;;1168:131:16;1105:401:84;1168:131:16;-1:-1:-1;;;;;1309:15:16;;;;;1355:350;;;;;;;;;1507:2;1355:350;;1658:11;1355:350;;;;;1334:18;:371;;;-1:-1:-1;;;;;;1334:371:16;;;;;;1724:33;:38;;-1:-1:-1;;1724:38:16;1760:2;1724:38;;;1289:172:23::2;::::0;1311:30;::::2;::::0;;:100:::2;;;-1:-1:-1::0;;;;;;;;1361:50:23::2;;:7;-1:-1:-1::0;;;;;1361:13:23::2;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;1361:50:23::2;;1311:100;1289:172;::::0;;;;::::2;::::0;;;::::2;::::0;;::::2;;::::0;::::2;::::0;:8:::2;:172::i;:::-;1471:32;1506:8;:6;:8::i;:::-;-1:-1:-1::0;;;;;1506:17:23::2;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1632:16;::::0;;1646:1:::2;1632:16:::0;;;;;::::2;::::0;;;1471:54;;-1:-1:-1;1601:28:23::2;::::0;1632:16;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;-1:-1:-1::0;;1856:18:23::2;::::0;;1872:1:::2;1856:18:::0;;;::::2;::::0;::::2;::::0;;;1601:47;;-1:-1:-1;;;;;;1679:30:23;::::2;::::0;::::2;::::0;-1:-1:-1;1727:34:23::2;::::0;1856:18:::2;::::0;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;1679:283;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1662:11;1674:1;1662:14;;;;;;;;:::i;:::-;;;;;;:300;;;::::0;::::2;1976:36;2026:19;2048:9;-1:-1:-1::0;;;;;2048:28:23::2;;2077:141;;;;;;;;2123:31;2077:141;;;;;;;;:::i;:::-;;;;;2181:8;2077:141;;::::0;2048:171:::2;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2026:193;;2233:14;2250:9;-1:-1:-1::0;;;;;2250:28:23::2;;2279:155;;;;;;;;2325:45;2279:155:::0;::::2;;;;;;;:::i;:::-;;;;;2397:8;2279:155;;::::0;2250:185:::2;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2233:202;;2465:9;-1:-1:-1::0;;;;;2465:28:23::2;;2511:11;2540;2569:6;2593:2;2660:11;:18;-1:-1:-1::0;;;;;2645:34:23::2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2465:228;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2449:244;::::0;-1:-1:-1;376:20746:23;;-1:-1:-1;;;;;;376:20746:23;1437:153:79;1526:13;1519:20;;-1:-1:-1;;;;;;1519:20:79;;;1549:34;1574:8;1549:24;:34::i;:::-;1437:153;:::o;19467:195:23:-;19602:10;19597:59;;19628:17;19636:8;19628:7;:17::i;:::-;19467:195;;:::o;3443:151::-;3532:12;3567:20;2324:8:16;;;2246:93;3567:20:23;3560:27;;3443:151;:::o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;19668:225:23:-;3272:29;;;;;;;;;;;;-1:-1:-1;;;3272:29:23;;;;19853:8;19772:103;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;19772:103:23;;;;;;;;;;-1:-1:-1;;;19745:141:23;;;;;;;:::i;376:20746::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:145:84:-;-1:-1:-1;;;;;103:31:84;;93:42;;83:70;;149:1;146;139:12;164:433;263:6;271;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;372:9;366:16;391:45;430:5;391:45;:::i;:::-;505:2;490:18;;484:25;455:5;;-1:-1:-1;518:47:84;484:25;518:47;:::i;:::-;584:7;574:17;;;164:433;;;;;:::o;810:290::-;879:6;932:2;920:9;911:7;907:23;903:32;900:52;;;948:1;945;938:12;900:52;974:16;;-1:-1:-1;;;;;;1019:32:84;;1009:43;;999:71;;1066:1;1063;1056:12;999:71;1089:5;810:290;-1:-1:-1;;;810:290:84:o;1511:295::-;1611:6;1664:2;1652:9;1643:7;1639:23;1635:32;1632:52;;;1680:1;1677;1670:12;1632:52;1712:9;1706:16;1731:45;1770:5;1731:45;:::i;1811:127::-;1872:10;1867:3;1863:20;1860:1;1853:31;1903:4;1900:1;1893:15;1927:4;1924:1;1917:15;1943:127;2004:10;1999:3;1995:20;1992:1;1985:31;2035:4;2032:1;2025:15;2059:4;2056:1;2049:15;2075:250;2160:1;2170:113;2184:6;2181:1;2178:13;2170:113;;;2260:11;;;2254:18;2241:11;;;2234:39;2206:2;2199:10;2170:113;;;-1:-1:-1;;2317:1:84;2299:16;;2292:27;2075:250::o;2330:271::-;2372:3;2410:5;2404:12;2437:6;2432:3;2425:19;2453:76;2522:6;2515:4;2510:3;2506:14;2499:4;2492:5;2488:16;2453:76;:::i;:::-;2583:2;2562:15;-1:-1:-1;;2558:29:84;2549:39;;;;2590:4;2545:50;;2330:271;-1:-1:-1;;2330:271:84:o;2768:2087::-;3333:4;3373:1;3365:6;3362:13;3352:47;;3379:18;;:::i;:::-;3426:6;3415:9;3408:25;3452:2;3490:3;3485:2;3474:9;3470:18;3463:31;3513:1;3551;3545:3;3534:9;3530:19;3523:30;3572:2;3610:3;3605:2;3594:9;3590:18;3583:31;3651:1;3645:3;3634:9;3630:19;3623:30;3696:3;3685:9;3681:19;3736:3;3731:2;3720:9;3716:18;3709:31;3760:11;3800:6;3794:13;3836:6;3823:11;3816:27;3862:3;3852:13;;3896:2;3885:9;3881:18;3874:25;;3958:2;3948:6;3945:1;3941:14;3930:9;3926:30;3922:39;3908:53;;3996:2;3988:6;3984:15;4017:1;4027:708;4041:6;4038:1;4035:13;4027:708;;;4106:22;;;-1:-1:-1;;4102:37:84;4090:50;;4163:13;;4110:6;4263:15;;;4333:2;4348:278;4364:4;4359:3;4356:13;4348:278;;;4449:6;4441;4437:19;4430:5;4423:34;4484:42;4519:6;4508:8;4502:15;4484:42;:::i;:::-;4555:17;;;;4598:14;;;;4474:52;-1:-1:-1;4388:1:84;4379:11;4348:278;;;-1:-1:-1;4649:6:84;-1:-1:-1;;;4713:12:84;;;;4678:15;;;;4063:1;4056:9;4027:708;;;-1:-1:-1;;;;4772:22:84;;;4766:3;4751:19;;4744:51;2683:1;2671:14;;-1:-1:-1;;;2710:4:84;2701:14;;2694:35;2754:2;2745:12;;4804:45;2768:2087;-1:-1:-1;;;;;;;;2768:2087:84:o;4860:184::-;4930:6;4983:2;4971:9;4962:7;4958:23;4954:32;4951:52;;;4999:1;4996;4989:12;4951:52;-1:-1:-1;5022:16:84;;4860:184;-1:-1:-1;4860:184:84:o;5049:127::-;5110:10;5105:3;5101:20;5098:1;5091:31;5141:4;5138:1;5131:15;5165:4;5162:1;5155:15;5181:1310;5335:4;5364:2;5393;5382:9;5375:21;5434:2;5423:9;5419:18;5462:6;5456:13;5495:2;5491;5488:10;5478:44;;5502:18;;:::i;:::-;5538;;;5531:30;5596:15;;;5590:22;5631:4;5651:20;;;5644:34;;;5727:19;;5755:22;;;;5808:3;5858:1;5854:14;;;5839:30;;5835:40;;;5898:21;;;;5793:19;;;;5937:1;5947:515;5961:6;5958:1;5955:13;5947:515;;;6026:22;;;-1:-1:-1;;6022:37:84;6010:50;;6083:13;;6119:9;;6158:2;6151:10;;6141:44;;6165:18;;:::i;:::-;6198;;6257:11;;6251:18;6289:15;;;6282:27;;;6332:50;6366:15;;;6251:18;6332:50;:::i;:::-;6322:60;-1:-1:-1;;6405:15:84;;;;6440:12;;;;5983:1;5976:9;5947:515;;;-1:-1:-1;6479:6:84;;5181:1310;-1:-1:-1;;;;;;;;5181:1310:84:o;6496:2225::-;6926:3;6939:22;;;7010:13;;6911:19;;;7032:22;;;6878:4;;7108;;7085:3;7070:19;;;7135:15;;;6878:4;7178:169;7192:6;7189:1;7186:13;7178:169;;;7253:13;;7241:26;;7287:12;;;;7322:15;;;;7214:1;7207:9;7178:169;;;7182:3;;;7383:6;7378:2;7367:9;7363:18;7356:34;7426:6;7421:2;7410:9;7406:18;7399:34;7481:6;7473;7469:19;7464:2;7453:9;7449:18;7442:47;7535:9;7530:3;7526:19;7520:3;7509:9;7505:19;7498:48;7568:3;7602:6;7596:13;7630:8;7625:3;7618:21;7666:2;7661:3;7657:12;7648:21;;7688:1;7744:2;7732:8;7729:1;7725:16;7720:3;7716:26;7712:35;7784:2;7776:6;7772:15;7807:1;7817:875;7833:8;7828:3;7825:17;7817:875;;;-1:-1:-1;;7936:16:84;;;7932:25;;7918:40;;7981:15;;8057:9;;8079:24;;;8235:11;;;;8125:15;;;;8183:17;;;8171:30;;8167:39;;8270:1;8284:291;8300:8;8295:3;8292:17;8284:291;;;8402:2;8393:6;8385;8381:19;8377:28;8370:5;8363:43;8433:42;8468:6;8457:8;8451:15;8433:42;:::i;:::-;8504:17;;;;8547:14;;;;8423:52;-1:-1:-1;8328:1:84;8319:11;8284:291;;;-1:-1:-1;8668:14:84;;;;8598:6;-1:-1:-1;;;8629:17:84;;;;-1:-1:-1;;7861:1:84;7852:11;7817:875;;;-1:-1:-1;8709:6:84;;6496:2225;-1:-1:-1;;;;;;;;;;;;;6496:2225:84:o;8726:641::-;9006:3;9044:6;9038:13;9060:66;9119:6;9114:3;9107:4;9099:6;9095:17;9060:66;:::i;:::-;-1:-1:-1;;;9148:16:84;;;9173:19;;;9217:13;;9239:78;9217:13;9304:1;9293:13;;9286:4;9274:17;;9239:78;:::i;:::-;9337:20;9359:1;9333:28;;8726:641;-1:-1:-1;;;;8726:641:84:o;9372:220::-;9521:2;9510:9;9503:21;9484:4;9541:45;9582:2;9571:9;9567:18;9559:6;9541:45;:::i;9372:220::-;376:20746:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
|
23520
23520
|
"deployedSourceMap": "376:20746:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:32;;;;;;;;;;;;;;-1:-1:-1;;;2761:32:23;;;:7;:32::i;:::-;376:20746;;2853:319;2933:42;2965:7;;2952:22;;2933:18;:42::i;:::-;2989:47;3008:27;3021:7;;3008:27;;;2989:18;:47::i;:::-;3050:48;3069:28;3082:7;;3069:28;;;3050:18;:48::i;:::-;3112;3131:28;3144:7;;3131:28;;;3112:18;:48::i;:::-;2868:302;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2853:7;:319::i;7779:1674::-;;;;;;;;;;-1:-1:-1;7779:1674:23;;;;;:::i;:::-;;:::i;:::-;;;;1760:25:84;;;-1:-1:-1;;;;;1821:31:84;;;1816:2;1801:18;;1794:59;1869:18;;;1862:34;1927:2;1912:18;;1905:34;1747:3;1732:19;7779:1674:23;;;;;;;;14997:419;;;;;;;;;;-1:-1:-1;14997:419:23;;;;;:::i;:::-;;:::i;:::-;;;2636:10:84;2624:23;;;2606:42;;2594:2;2579:18;14997:419:23;2462:192:84;3443:151:23;;;;;;;;;;-1:-1:-1;2324:8:16;3443:151:23;;;-1:-1:-1;;;;;2843:32:84;;;2825:51;;2813:2;2798:18;3443:151:23;2659:223:84;1078:47:23;;;;;;;;;;;;;;;;;;3033:25:84;;;3021:2;3006:18;1078:47:23;2887:177:84;15699:1346:23;;;:::i;2293:101:1:-;;;;;;;;;;;;;:::i;12903:1032:23:-;;;;;;;;;;-1:-1:-1;12903:1032:23;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;17790:157::-;;;;;;;;;;;;;:::i;5045:291::-;;;;;;;;;;-1:-1:-1;5045:291:23;;;;;:::i;:::-;;:::i;18130:166::-;;;;;;;;;;-1:-1:-1;18244:7:23;1710:6:1;-1:-1:-1;;;;;1710:6:1;18130:166:23;3443:151;9537:164;;;;;;;;;;;;;:::i;17379:163::-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;17510:25:23;;;;;;;17517:18;17510:25;;;;;;;-1:-1:-1;;;;;17510:25:23;;;;;;;;;;;;17379:163;;4144:43:84;;;4229:24;;4225:49;4203:20;;;4196:79;;;;4117:18;17379:163:23;3944:337:84;14145:229:23;;;;;;;;;;-1:-1:-1;14145:229:23;;;;;:::i;:::-;;:::i;:::-;;;4451:14:84;;4444:22;4426:41;;4414:2;4399:18;14145:229:23;4286:187:84;10314:487:23;;;;;;;;;;-1:-1:-1;10314:487:23;;;;;:::i;:::-;;:::i;:::-;;;;4680:25:84;;;4736:2;4721:18;;4714:34;;;;4764:18;;;4757:34;4668:2;4653:18;10314:487:23;4478:319:84;3991:351:23;;;;;;;;;;-1:-1:-1;3991:351:23;;;;;:::i;:::-;;:::i;3314:123::-;;;;;;;;;;-1:-1:-1;3314:123:23;;-1:-1:-1;;;4946:52:84;;4934:2;4919:18;3314:123:23;4802:202:84;18709:219:23;;;;;;;;;;-1:-1:-1;18709:219:23;;;;;:::i;:::-;;:::i;3185:123::-;;;;;;;;;;-1:-1:-1;3272:29:23;;;;;;;;;;;-1:-1:-1;;;3272:29:23;;;;3185:123;;;;3272:29;3185:123;:::i;11782:439::-;;;;;;;;;;-1:-1:-1;11782:439:23;;;;;:::i;:::-;;:::i;18934:285::-;;;;;;;;;;-1:-1:-1;18934:285:23;;;;;:::i;:::-;;:::i;11084:408::-;;;;;;;;;;-1:-1:-1;11084:408:23;;;;;:::i;:::-;;:::i;18302:190::-;;;;;;;;;;;;;:::i;17953:171::-;;;;;;;;;;-1:-1:-1;18084:33:23;;17953:171;;18084:33;;;;6031:38:84;;6019:2;6004:18;17953:171:23;5887:188:84;18502:201:23;;;;;;;;;;-1:-1:-1;18502:201:23;;;;;:::i;:::-;;:::i;19668:225::-;3272:29;;;;;;;;;;;;-1:-1:-1;;;3272:29:23;;;;19853:8;19772:103;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;19772:103:23;;;;;;;;;;-1:-1:-1;;;19745:141:23;;;;;;;:::i;:::-;;;;;;;;19497:383:64;19614:12;;;19624:1;19614:12;;;;;;;;;19567:13;;19596:15;;19614:12;;;;;;;;;;;-1:-1:-1;;19596:30:64;-1:-1:-1;19636:8:64;19653:7;19658:2;19653;:7;:::i;:::-;19647:19;;19664:2;19647:19;:::i;:::-;19636:30;-1:-1:-1;19676:8:64;19693:7;19698:2;19693;:7;:::i;:::-;19687:19;;19704:2;19687:19;:::i;:::-;19676:30;;19725:2;19720;:7;;;19716:32;;;19741:7;19747:1;19741:7;;:::i;:::-;;;19716:32;19767:2;19762;:7;;;19758:32;;;19783:7;19789:1;19783:7;;:::i;:::-;;;19758:32;19815:2;19808:10;;19800:2;19803:1;19800:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;19800:18:64;;;;;;;;;19843:2;19836:10;;19828:2;19831:1;19828:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;19828:18:64;;;;;;;;-1:-1:-1;19870:2:64;;19497:383;-1:-1:-1;;;;19497:383:64:o;7779:1674:23:-;7913:31;7958:30;8002;8046:34;8109:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;:55;;8105:136;;8195:35;8217:12;8195:21;:35::i;:::-;8180:50;;8105:136;8251:29;8283:11;:9;:11::i;:::-;:22;;:36;8306:12;8283:36;;;;;;;;;;;8251:68;;8329:22;8354:11;:25;;;8329:50;;8389:82;8411:14;8429:1;8411:19;;8389:82;;;;;;;;;;;;;-1:-1:-1;;;8389:82:23;;;:8;:82::i;:::-;8524:47;;-1:-1:-1;;;8524:47:23;;;;;3033:25:84;;;8490:31:23;;8524:8;-1:-1:-1;;;;;8524:31:23;;;;3006:18:84;;8524:47:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8490:81;-1:-1:-1;8596:29:23;8585:7;:40;;;;;;;;:::i;:::-;;8581:866;;8689:41;;-1:-1:-1;;;8689:41:23;;;;;3033:25:84;;;8641:45:23;;8689:8;-1:-1:-1;;;;;8689:25:23;;;;3006:18:84;;8689:41:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8689:41:23;;;;;;;;;;;;:::i;:::-;8641:89;;8769:20;:36;;;8744:61;;;;8844:20;:36;;;8819:61;;8923:20;:29;;;-1:-1:-1;;;;;8894:58:23;;;8992:65;:53;:20;:36;;;:51;:53::i;:::-;:63;:65::i;:::-;8966:91;;8627:442;8581:866;;;9090:29;9079:7;:40;;;;;;;;:::i;:::-;;9075:372;;9165:21;;;;9200:101;;;;;;;;;;;;-1:-1:-1;;;9200:101:23;;;;;;9226:24;;;;9200:8;:101::i;:::-;9322:46;9348:19;9322:25;:46::i;:::-;9315:53;;;;;;;;;;;;;;9075:372;9408:28;;;;;;;;;;;;;;-1:-1:-1;;;9408:28:23;;;:7;:28::i;:::-;8095:1358;;;7779:1674;;;;;;:::o;14997:419::-;15131:6;15160:249;15202:6;15222;15301:10;15333:34;15354:12;15333:20;:34::i;:::-;15269:116;;;-1:-1:-1;;;;;10735:32:84;;;15269:116:23;;;10717:51:84;10784:18;;10777:34;10690:18;;15269:116:23;;;;;;;;;;;;15242:157;;;;;;15160:28;:249::i;:::-;15153:256;;14997:419;;;;;;:::o;3567:20::-;3560:27;;3443:151;:::o;15699:1346::-;15787:24;15864:12;15831:11;:9;:11::i;:::-;:30;:45;15827:1047;;;15911:9;15892:28;;15985:19;16007:8;-1:-1:-1;;;;;16007:20:23;;16052:16;16100:13;16131:18;16007:158;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15985:180;;16226:29;16258:11;:9;:11::i;:::-;16281:12;16258:36;;;;:22;;;;;:36;;;;;16308:42;;;16258:36;-1:-1:-1;16420:11:23;:9;:11::i;:::-;:30;16464:21;;;:34;;;16420:30;-1:-1:-1;16559:12:23;16512:11;:9;:11::i;:::-;:34;;;;:22;;;;;:34;;;;;:44;;:59;16618:12;16585:11;:9;:11::i;:::-;:45;16677:186;;;;;;16706:12;;16736:11;;16765:16;;16799:14;;16831:18;;16677:186;:::i;:::-;;;;;;;;15878:996;;;15827:1047;16945:9;16926:16;:28;16922:117;;;16978:10;16970:58;16999:28;17011:16;16999:9;:28;:::i;:::-;16970:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16922:117;15699:1346;:::o;2293:101:1:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;12903:1032:23:-;13016:23;13059:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;:55;;13055:136;;13145:35;13167:12;13145:21;:35::i;:::-;13130:50;;13055:136;13200:22;13225:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;;-1:-1:-1;13289:19:23;;;13285:644;;-1:-1:-1;13331:28:23;;12903:1032;-1:-1:-1;;12903:1032:23:o;13285:644::-;13433:47;;-1:-1:-1;;;13433:47:23;;;;;3033:25:84;;;13399:31:23;;13433:8;-1:-1:-1;;;;;13433:31:23;;;;3006:18:84;;13433:47:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13399:81;-1:-1:-1;13509:29:23;13498:7;:40;;;;;;;;:::i;:::-;;13494:425;;13558:27;13588:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:46;;;;-1:-1:-1;13656:24:23;;13652:200;;13711:39;13730:19;13711:18;:39::i;:::-;13704:46;12903:1032;-1:-1:-1;;;;;12903:1032:23:o;13652:200::-;-1:-1:-1;13804:29:23;;12903:1032;-1:-1:-1;;;;12903:1032:23:o;13652:200::-;13540:326;13494:425;13385:544;13045:890;12903:1032;;;:::o;17790:157::-;17910:30;:28;:30::i;5045:291::-;5159:7;5240:12;5270:35;5292:12;5270:21;:35::i;:::-;5212:107;;;;;;12424:25:84;;;;12465:18;;12458:34;12397:18;;5212:107:23;;;;;;;;;;;;5189:140;;;;;;5182:147;;5045:291;;;:::o;9537:164::-;9634:7;9664:11;:9;:11::i;:::-;:30;;9537:164;-1:-1:-1;9537:164:23:o;14145:229::-;14251:4;14328:29;14292:32;14311:12;14292:18;:32::i;:::-;:65;;;;;;;;:::i;:::-;;;14145:229;-1:-1:-1;;14145:229:23:o;10314:487::-;10439:22;10475:27;10516;10568:29;10600:11;:9;:11::i;:::-;:36;;;;:22;;;;:36;;;;;;10663:25;;10720:21;;;;10773;;;;;10663:25;;10720:21;;10773;-1:-1:-1;10314:487:23;-1:-1:-1;;;10314:487:23:o;3991:351::-;4209:109;;-1:-1:-1;;;4209:109:23;;;;;12675:25:84;;;4297:2:23;12716:18:84;;;12709:47;4105:7:23;;4332:3;;-1:-1:-1;;;;;4209:8:23;:24;;;;12648:18:84;;4209:109:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4156:33;;4150:39;;4156:33;;4150:3;:39;:::i;:::-;4149:169;;;;;;:::i;:::-;4135:200;;;;:::i;:::-;4128:207;3991:351;-1:-1:-1;;3991:351:23:o;18709:219::-;1531:13:1;:11;:13::i;:::-;18859:33:23::1;:62:::0;;-1:-1:-1;;18859:62:23::1;;::::0;;;::::1;::::0;;;::::1;::::0;;18709:219::o;11782:439::-;11897:7;11942:1;11927:12;:16;11920:24;;;;:::i;:::-;11954:15;11972:11;:9;:11::i;:::-;:30;;-1:-1:-1;12021:22:23;;;12020:184;;12131:73;12148:12;12162:11;:9;:11::i;:::-;:31;;;;:22;;;;:31;;;;;:41;;12131:16;:73::i;:::-;12020:184;;18934:285;1531:13:1;:11;:13::i;:::-;19082:84:23::1;19104:25;:15;:23;:25::i;:::-;19082:84;;;;;;;;;;;;;-1:-1:-1::0;;;19082:84:23::1;;::::0;:8:::1;:84::i;:::-;19197:15:::0;19176:18:::1;:36;19197:15:::0;19176:18;:36:::1;:::i;:::-;-1:-1:-1::0;;;18934:285:23:o;11084:408::-;11199:7;11231:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;:55;;11230:245;;11413:62;11430:12;11444:11;:9;:11::i;:::-;:30;11413:16;:62::i;:::-;11230:245;;;11302:11;:9;:11::i;:::-;:36;;;;:22;;:36;;-1:-1:-1;11302:36:23;;;:46;;;;11084:408::o;18302:190::-;18428:7;18458:27;862:13:79;;-1:-1:-1;;;;;862:13:79;;783:99;18502:201:23;1531:13:1;:11;:13::i;:::-;18660:36:23::1;18686:9;18660:25;:36::i;:::-;18502:201:::0;:::o;20979:141::-;21091:13;;20979:141::o;19467:195::-;19602:10;19597:59;;19628:17;19636:8;19628:7;:17::i;:::-;19467:195;;:::o;21747:244:64:-;21834:20;;:::i;:::-;21870:32;21905:31;21926:9;21905:20;:31::i;:::-;21870:66;;21953:31;21974:9;21953:20;:31::i;26363:175::-;26475:7;26450:6;24979;:14;;;24971:77;;;;-1:-1:-1;;;24971:77:64;;;;;;;:::i;:::-;26505:26:::1;26515:15;26523:6;26515:7;:15::i;:::-;26505:9;:26::i;4219:328:70:-:0;4331:6;4354:15;-1:-1:-1;;;;;4431:4:70;4437:5;4420:23;;;;;;;;12424:25:84;;;12480:2;12465:18;;12458:34;12412:2;12397:18;;12250:248;4420:23:70;;;;-1:-1:-1;;4420:23:70;;;;;;;;;4393:64;;4420:23;4393:64;;;;4372:119;;-1:-1:-1;4536:3:70;4516:15;;;;4372:119;4516:15;:::i;:::-;4515:24;;;4219:328;-1:-1:-1;;;;;4219:328:70:o;1796:162:1:-;18244:7:23;1710:6:1;-1:-1:-1;;;;;1710:6:1;735:10:3;1855:23:1;1851:101;;1901:40;;-1:-1:-1;;;1901:40:1;;735:10:3;1901:40:1;;;2825:51:84;2798:18;;1901:40:1;2659:223:84;1437:153:79;1526:13;1519:20;;-1:-1:-1;;;;;;1519:20:79;;;1549:34;1574:8;1549:24;:34::i;1670:239::-;735:10:3;;1765:14:79;:12;:14::i;:::-;-1:-1:-1;;;;;1765:24:79;;1761:106;;1805:51;;-1:-1:-1;;;1805:51:79;;14910:2:84;1805:51:79;;;14892:21:84;14949:2;14929:18;;;14922:30;14988:34;14968:18;;;14961:62;-1:-1:-1;;;15039:18:84;;;15032:39;15088:19;;1805:51:79;14708:405:84;1761:106:79;1876:26;1895:6;1876:18;:26::i;5346:1209:23:-;5447:7;5474:11;:9;:11::i;:::-;:36;;;;:22;;;;;:36;;;;;:50;:55;;5470:136;;5560:35;5582:12;5560:21;:35::i;:::-;5545:50;;5470:136;5616:29;5648:11;:9;:11::i;:::-;:22;;:36;5671:12;5648:36;;;;;;;;;;;5616:68;;5694:22;5719:11;:25;;;5694:50;;5754:82;5776:14;5794:1;5776:19;;5754:82;;;;;;;;;;;;;-1:-1:-1;;;5754:82:23;;;:8;:82::i;:::-;5889:47;;-1:-1:-1;;;5889:47:23;;;;;3033:25:84;;;5855:31:23;;5889:8;-1:-1:-1;;;;;5889:31:23;;;;3006:18:84;;5889:47:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5855:81;-1:-1:-1;5961:29:23;5950:7;:40;;;;;;;;:::i;:::-;;5946:603;;6031:48;;-1:-1:-1;;;6031:48:23;;;;;3033:25:84;;;6031:119:23;;:86;;-1:-1:-1;;;;;6031:8:23;:32;;;;3006:18:84;;6031:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6031:48:23;;;;;;;;;;;;:::i;:::-;:84;:86::i;5946:603::-;6196:29;6185:7;:40;;;;;;;;:::i;:::-;;6181:368;;6271:21;;;;6306:101;;;;;;;;;;;;-1:-1:-1;;;6306:101:23;;;;;;6332:24;;;;6306:8;:101::i;:::-;6428:42;6450:19;6428:21;:42::i;:::-;6421:49;5346:1209;-1:-1:-1;;;;;;5346:1209:23:o;6181:368::-;6510:28;;;;;;;;;;;;;;-1:-1:-1;;;6510:28:23;;;:7;:28::i;20545:251::-;20628:7;20666;20656;:17;20655:124;;20711:68;20728:7;20737:11;:9;:11::i;:::-;:31;;;;:22;;;;:31;;;;;:41;;20711:16;:68::i;20655:124::-;-1:-1:-1;20689:7:23;20647:142;-1:-1:-1;20545:251:23:o;3011:215:70:-;3074:4;;3111:24;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3111:28:70;;:70;;;;-1:-1:-1;3180:1:70;3160:17;;;;:3;:17;:::i;:::-;:21;;;3111:70;:98;;;;-1:-1:-1;3206:3:70;3185:17;;;;:3;:17;:::i;:::-;:24;;;;3090:129;3011:215;-1:-1:-1;;3011:215:70:o;20075:287:23:-;20158:7;20197;20186;:18;;20185:160;;20277:68;20294:7;20303:11;:9;:11::i;:::-;:31;;;;:22;;;;:31;;;;;:41;;20277:16;:68::i;20185:160::-;20221:11;:9;:11::i;:::-;:31;;;;:22;;:31;;-1:-1:-1;20221:31:23;;;:41;;;;20075:287;-1:-1:-1;20075:287:23:o;2543:215:1:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:1;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:1;;2700:1:::1;2672:31;::::0;::::1;2825:51:84::0;2798:18;;2672:31:1::1;2659:223:84::0;2415:198:66;2488:11;;:::i;:::-;2545:32;;;;;;;;;;;;2509:33;2545:32;;;;2590:18;2545:32;2590:10;:18::i;30418:406:64:-;30515:20;;:::i;:::-;-1:-1:-1;30758:8:64;;;;30789:28;;;;;;;;;-1:-1:-1;;;;;30758:14:64;;;30770:2;30758:14;;30789:28;;;;;;;;;;30418:406::o;25855:175::-;25964:12;25940:6;24979;:14;;;24971:77;;;;-1:-1:-1;;;24971:77:64;;;;;;;:::i;:::-;25999:24:::1;:6;:12;;;:22;:24::i;22399:120::-:0;22462:7;22488:24;22501:6;22509:2;22488:12;:24::i;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;2925:996:66:-;3032:11;;:::i;:::-;1893;;:18;3011:6;;1893:11;:23;1889:77;;1933:26;;-1:-1:-1;;;1933:26:66;;;;;;;;;;;1889:77;3053:17:::1;3094:3;3053:17:::0;-1:-1:-1;;;;;3053:17:66;3198:4:::1;3208:478;3215:8;3208:478;;;3303:18;:6;:16;:18::i;:::-;3289:32:::0;-1:-1:-1;3329:6:66;::::1;::::0;::::1;:::i;:::-;3355:16:::0;3370:1:::1;3355:16:::0;;;;;-1:-1:-1;3417:4:66::1;3403:18:::0;::::1;::::0;-1:-1:-1;3329:6:66;-1:-1:-1;;;;3466:27:66;;3462:218:::1;;3520:13;::::0;::::1;::::0;3549:41:::1;3520:6:::0;3568:21;3549:10:::1;:41::i;:::-;3543:47;;3623:7;3607:6;:13;;;:23;;;;:::i;:::-;3600:30;::::0;;::::1;:::i;:::-;;;3495:144;3208:478;;3462:218;-1:-1:-1::0;3666:5:66::1;3208:478;;;1286:1;3695:35;::::0;::::1;;3691:94;;;3747:31;::::0;-1:-1:-1;;;3747:31:66;;16400:4:84;16388:17;;3747:31:66::1;::::0;::::1;16370:36:84::0;16343:18;;3747:31:66::1;16226:186:84::0;3691:94:66::1;-1:-1:-1::0;3797:119:66::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;::::0;;;;-1:-1:-1;;;;;3797:119:66;;::::1;::::0;;;;::::1;::::0;;;;-1:-1:-1;3797:119:66;;2925:996;-1:-1:-1;2925:996:66:o;9957:890::-;10065:19;10028:4;1042:1;1738:8;1720:26;;:4;:14;;;:26;;;1716:99;;1783:14;;;;;1763:45;;-1:-1:-1;;;1763:45:66;;16617:4:84;16605:17;;;1763:45:66;;;16587:36:84;16659:17;;;16639:18;;;16632:45;16560:18;;1763:45:66;16417:266:84;1716:99:66;10105:69:::1;10123:4;:11;;;10142:4;:26;;;10105:10;:69::i;:::-;-1:-1:-1::0;;;;;10094:80:66::1;:8;::::0;::::1;:80:::0;;;-1:-1:-1;;10184:22:66;10180:663:::1;;10303:13;10326:80;10363:4;:11;;;10384:4;:14;;;10326:27;:80::i;:::-;10303:104:::0;-1:-1:-1;1330:16:66::1;10419:19:::0;;::::1;;10415:360;;;10476:11:::0;;:24:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:24;:::i;:::-;10459:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;10450:51;;10527:86;10566:4;:11;;;10589:4;:14;;;10527:27;:86::i;:::-;10511:103:::0;-1:-1:-1;1330:16:66::1;10628:19:::0;;::::1;;10624:143;;;10720:11:::0;;10700:6;;10720:24:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:24;:::i;:::-;10670:86;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10661:95;;10208:573;10180:663;;;10826:8;::::0;::::1;::::0;10802:11;;:34:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:34;:::i;:::-;10795:41;;;;22525:402:64::0;22624:16;22676:2;22663:9;:15;;;;22656:23;;;;:::i;:::-;22713:9;22741;22725:25;;:6;:13;:25;:53;;22765:6;:13;22725:53;;;22753:9;22725:53;;;22713:65;;22797:7;22792:119;22815:4;22810:2;:9;22792:119;;;22889:2;22894:1;22889:6;22866;22873:2;22866:10;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;22866:10:64;22858:38;;22846:50;;;;;22821:5;;22792:119;;;;22689:232;22525:402;;;;:::o;13332:304:65:-;13455:11;13407:6;:13;;;13422:6;:11;;;:18;988:6;980:5;:14;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1011:31:65;12250:248:84;976:73:65;13496:11;;13527:13:::1;::::0;::::1;::::0;;13578:25;;;13592:1:::1;13578:25:::0;13572:32;;-1:-1:-1;13527:13:65;;;13615:16:::1;13527:13:::0;13615:16:::1;:::i;:::-;;;::::0;::::1;13470:166;;13332:304:::0;;;;;:::o;8569:671:66:-;8703:6;8747:2;8723:21;:26;;;8719:75;;;-1:-1:-1;8759:28:66;;;;;8719:75;8803:21;:27;;8828:2;8803:27;8799:73;;8847:18;:6;:16;:18::i;:::-;8840:25;;;;;;8799:73;8881:21;:27;;8906:2;8881:27;8877:74;;8925:19;:6;:17;:19::i;:::-;8918:26;;;;;;8877:74;8960:21;:27;;8985:2;8960:27;8956:74;;9004:19;:6;:17;:19::i;:::-;8997:26;;;;;;8956:74;9039:21;:27;;9064:2;9039:27;9035:74;;9083:19;:6;:17;:19::i;:::-;9076:26;;;;9035:74;9118:21;:27;;9143:2;9118:27;9114:65;;-1:-1:-1;;;;;;9155:17:66;;9114:65;9191:44;;-1:-1:-1;;;9191:44:66;;16400:4:84;16388:17;;9191:44:66;;;16370:36:84;16343:18;;9191:44:66;16226:186:84;18437:521:66;18574:10;18594:17;18614:18;:6;:16;:18::i;:::-;18594:38;;18642:11;:19;;18657:4;18642:19;18638:57;;-1:-1:-1;;;;;18671:17:66;;;;;18638:57;18706:56;18724:6;18738:11;18752:4;18738:18;18706:10;:56::i;:::-;18700:62;-1:-1:-1;;;;;;18772:17:66;;;;18768:186;;18806:26;;-1:-1:-1;;;18806:26:66;;-1:-1:-1;;;;;17893:31:84;;18806:26:66;;;17875:50:84;17848:18;;18806:26:66;17730:201:84;18768:186:66;18863:16;18849:31;;18863:16;18878:1;18863:16;;;;18849:31;18845:109;;18897:50;;-1:-1:-1;;;18897:50:66;;18918:16;18933:1;18918:16;;;;18897:50;;;16587:36:84;18918:16:66;16659:17:84;;16639:18;;;16632:45;16560:18;;18897:50:66;16417:266:84;18845:109:66;18588:370;18437:521;;;;:::o;5079:903:65:-;5219:19;5178:6;5162;:13;;;:22;;;;:::i;:::-;5186:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1011:31:65;12250:248:84;976:73:65;5320:6:::1;-1:-1:-1::0;;;;;5310:17:65::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;5310:17:65::1;-1:-1:-1::0;5301:26:65;-1:-1:-1;5388:10:65;;5384:594:::1;;5429:11:::0;;5462:13:::1;::::0;;::::1;::::0;;5629:27;;;;;;5687:15;::::1;5773:81;5687:15:::0;5629:27;5840:6;5773::::1;:81::i;:::-;5913:58;5927:6;5943;5959:4;5913;:58::i;:::-;;5400:578;;;;5079:903:::0;;;;;;:::o;13873:312::-;14001:12;13949:6;:13;;;13965:1;13949:17;;;;:::i;:::-;13968:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1011:31:65;12250:248:84;976:73:65;14043:11;;14074:13:::1;::::0;::::1;::::0;;14139:1:::1;14125:25:::0;;;;;14119:32;;-1:-1:-1;14074:13:65;;14162:18:::1;14139:1:::0;14074:13;14162:18:::1;:::i;:::-;::::0;;-1:-1:-1;13873:312:65;;;-1:-1:-1;;;;;13873:312:65:o;14422:::-;14550:12;14498:6;:13;;;14514:1;14498:17;;;;:::i;:::-;14517:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1011:31:65;12250:248:84;976:73:65;14592:11;;14623:13:::1;::::0;::::1;::::0;;14688:1:::1;14674:25:::0;;;;;14668:32;;-1:-1:-1;14623:13:65;;14711:18:::1;14688:1:::0;14623:13;14711:18:::1;:::i;14971:312::-:0;15099:12;15047:6;:13;;;15063:1;15047:17;;;;:::i;:::-;15066:11;;:18;980:14;;;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1011:31:65;12250:248:84;976:73:65;15141:11;;15172:13:::1;::::0;::::1;::::0;;15237:1:::1;15223:25:::0;;;;;15217:32;;-1:-1:-1;15172:13:65;;15260:18:::1;15237:1:::0;15172:13;15260:18:::1;:::i;22416:596::-:0;22578:141;22592:2;22585:3;:9;22578:141;;22651:10;;22638:24;;22689:2;22681:10;;;;22701:9;;;;-1:-1:-1;;22596:9:65;22578:141;;;22730:7;;22726:276;;22865:10;;22919:11;;22802:2;:8;;;22794:3;:17;-1:-1:-1;;22794:21:65;22877:10;;22861:27;;;22915:23;;22962:21;22949:35;;22416:596;;;:::o;21113:314::-;21276:4;21235:6;21243;:11;;;:18;988:6;980:5;:14;976:73;;;1011:31;;-1:-1:-1;;;1011:31:65;;;;;12424:25:84;;;12465:18;;;12458:34;;;12397:18;;1011:31:65;12250:248:84;976:73:65;21328:8:::1;21324:52;;;21356:13;::::0;::::1;::::0;21346:23:::1;::::0;;::::1;:::i;:::-;;;21324:52;-1:-1:-1::0;;;;21381:13:65::1;::::0;;;::::1;:22:::0;;;;21113:314::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:250:84:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:84;238:16;;231:27;14:250::o;269:1072::-;-1:-1:-1;;;670:3:84;663:34;645:3;726:6;720:13;742:75;810:6;805:2;800:3;796:12;789:4;781:6;777:17;742:75;:::i;:::-;877:13;;836:16;;;;899:76;877:13;961:2;953:11;;946:4;934:17;;899:76;:::i;:::-;1036:13;;994:17;;;1058:76;1036:13;1120:2;1112:11;;1105:4;1093:17;;1058:76;:::i;:::-;1195:13;;1153:17;;;1217:76;1195:13;1279:2;1271:11;;1264:4;1252:17;;1217:76;:::i;:::-;1313:17;1332:2;1309:26;;269:1072;-1:-1:-1;;;;;;269:1072:84:o;1346:180::-;1405:6;1458:2;1446:9;1437:7;1433:23;1429:32;1426:52;;;1474:1;1471;1464:12;1426:52;-1:-1:-1;1497:23:84;;1346:180;-1:-1:-1;1346:180:84:o;1950:121::-;2035:10;2028:5;2024:22;2017:5;2014:33;2004:61;;2061:1;2058;2051:12;2076:381;2152:6;2160;2168;2221:2;2209:9;2200:7;2196:23;2192:32;2189:52;;;2237:1;2234;2227:12;2189:52;2276:9;2263:23;2295:30;2319:5;2295:30;:::i;:::-;2344:5;2396:2;2381:18;;2368:32;;-1:-1:-1;2447:2:84;2432:18;;;2419:32;;2076:381;-1:-1:-1;;;2076:381:84:o;3251:127::-;3312:10;3307:3;3303:20;3300:1;3293:31;3343:4;3340:1;3333:15;3367:4;3364:1;3357:15;3383:348;3535:2;3520:18;;3568:1;3557:13;;3547:144;;3613:10;3608:3;3604:20;3601:1;3594:31;3648:4;3645:1;3638:15;3676:4;3673:1;3666:15;3547:144;3700:25;;;3383:348;:::o;5009:272::-;5067:6;5120:2;5108:9;5099:7;5095:23;5091:32;5088:52;;;5136:1;5133;5126:12;5088:52;5175:9;5162:23;5225:6;5218:5;5214:18;5207:5;5204:29;5194:57;;5247:1;5244;5237:12;5286:396;5435:2;5424:9;5417:21;5398:4;5467:6;5461:13;5510:6;5505:2;5494:9;5490:18;5483:34;5526:79;5598:6;5593:2;5582:9;5578:18;5573:2;5565:6;5561:15;5526:79;:::i;:::-;5666:2;5645:15;-1:-1:-1;;5641:29:84;5626:45;;;;5673:2;5622:54;;5286:396;-1:-1:-1;;5286:396:84:o;5687:195::-;5775:6;5828:2;5816:9;5807:7;5803:23;5799:32;5796:52;;;5844:1;5841;5834:12;6080:131;-1:-1:-1;;;;;6155:31:84;;6145:42;;6135:70;;6201:1;6198;6191:12;6216:247;6275:6;6328:2;6316:9;6307:7;6303:23;6299:32;6296:52;;;6344:1;6341;6334:12;6296:52;6383:9;6370:23;6402:31;6427:5;6402:31;:::i;6468:641::-;6748:3;6786:6;6780:13;6802:66;6861:6;6856:3;6849:4;6841:6;6837:17;6802:66;:::i;:::-;-1:-1:-1;;;6890:16:84;;;6915:19;;;6959:13;;6981:78;6959:13;7046:1;7035:13;;7028:4;7016:17;;6981:78;:::i;:::-;7079:20;7101:1;7075:28;;6468:641;-1:-1:-1;;;;6468:641:84:o;7114:127::-;7175:10;7170:3;7166:20;7163:1;7156:31;7206:4;7203:1;7196:15;7230:4;7227:1;7220:15;7246:127;7307:10;7302:3;7298:20;7295:1;7288:31;7338:4;7335:1;7328:15;7362:4;7359:1;7352:15;7378:127;7439:10;7434:3;7430:20;7427:1;7420:31;7470:4;7467:1;7460:15;7494:4;7491:1;7484:15;7510:165;7548:1;7582:4;7579:1;7575:12;7606:3;7596:37;;7613:18;;:::i;:::-;7665:3;7658:4;7655:1;7651:12;7647:22;7642:27;;;7510:165;;;;:::o;7680:148::-;7768:4;7747:12;;;7761;;;7743:31;;7786:13;;7783:39;;;7802:18;;:::i;7833:157::-;7863:1;7897:4;7894:1;7890:12;7921:3;7911:37;;7928:18;;:::i;:::-;7980:3;7973:4;7970:1;7966:12;7962:22;7957:27;;;7833:157;;;;:::o;7995:127::-;8056:10;8051:3;8047:20;8044:1;8037:31;8087:4;8084:1;8077:15;8111:4;8108:1;8101:15;8127:280;8217:6;8270:2;8258:9;8249:7;8245:23;8241:32;8238:52;;;8286:1;8283;8276:12;8238:52;8318:9;8312:16;8357:1;8350:5;8347:12;8337:40;;8373:1;8370;8363:12;8412:248;8479:2;8473:9;8521:4;8509:17;;-1:-1:-1;;;;;8541:34:84;;8577:22;;;8538:62;8535:88;;;8603:18;;:::i;:::-;8639:2;8632:22;8412:248;:::o;8665:129::-;-1:-1:-1;;;;;8743:5:84;8739:30;8732:5;8729:41;8719:69;;8784:1;8781;8774:12;8799:698;8852:5;8905:3;8898:4;8890:6;8886:17;8882:27;8872:55;;8923:1;8920;8913:12;8872:55;8952:6;8946:13;-1:-1:-1;;;;;9015:2:84;9011;9008:10;9005:36;;;9021:18;;:::i;:::-;9096:2;9090:9;9064:2;9150:13;;-1:-1:-1;;9146:22:84;;;9170:2;9142:31;9138:40;9126:53;;;9194:18;;;9214:22;;;9191:46;9188:72;;;9240:18;;:::i;:::-;9280:10;9276:2;9269:22;9315:2;9307:6;9300:18;9361:3;9354:4;9349:2;9341:6;9337:15;9333:26;9330:35;9327:55;;;9378:1;9375;9368:12;9327:55;9391:76;9464:2;9457:4;9449:6;9445:17;9438:4;9430:6;9426:17;9391:76;:::i;9502:1036::-;9599:6;9652:2;9640:9;9631:7;9627:23;9623:32;9620:52;;;9668:1;9665;9658:12;9620:52;9701:9;9695:16;-1:-1:-1;;;;;9771:2:84;9763:6;9760:14;9757:34;;;9787:1;9784;9777:12;9757:34;9810:22;;;;9866:4;9848:16;;;9844:27;9841:47;;;9884:1;9881;9874:12;9841:47;9910:17;;:::i;:::-;9957:2;9951:9;9969:33;9994:7;9969:33;:::i;:::-;10011:22;;10071:2;10063:11;;10057:18;10084:32;10057:18;10084:32;:::i;:::-;10143:2;10132:14;;10125:31;10194:2;10186:11;;10180:18;10207:32;10180:18;10207:32;:::i;:::-;10266:2;10255:14;;10248:31;10325:2;10317:11;;;10311:18;10295:14;;;10288:42;10369:3;10361:12;;10355:19;10386:16;;;10383:36;;;10415:1;10412;10405:12;10383:36;10452:55;10499:7;10488:8;10484:2;10480:17;10452:55;:::i;:::-;10446:3;10435:15;;10428:80;-1:-1:-1;10439:5:84;9502:1036;-1:-1:-1;;;;;9502:1036:84:o;11049:327::-;11274:25;;;11262:2;11247:18;;11308:62;11366:2;11351:18;;11343:6;10909:12;10957:4;10942:20;;10930:33;;11003:1;10999:17;-1:-1:-1;;;;;10995:42:84;10988:4;10979:14;;;10972:66;10822:222;11381:184;11451:6;11504:2;11492:9;11483:7;11479:23;11475:32;11472:52;;;11520:1;11517;11510:12;11472:52;-1:-1:-1;11543:16:84;;11381:184;-1:-1:-1;11381:184:84:o;11570:542::-;11825:4;11867:3;11856:9;11852:19;11844:27;;11898:6;11887:9;11880:25;11941:6;11936:2;11925:9;11921:18;11914:34;11984:6;11979:2;11968:9;11964:18;11957:34;12027:6;12022:2;12011:9;12007:18;12000:34;12043:63;12101:3;12090:9;12086:19;12078:6;10909:12;10957:4;10942:20;;10930:33;;11003:1;10999:17;-1:-1:-1;;;;;10995:42:84;10988:4;10979:14;;;10972:66;10822:222;12117:128;12184:9;;;12205:11;;;12202:37;;;12219:18;;:::i;12767:168::-;12834:6;12860:10;;;12872;;;12856:27;;12895:11;;;12892:37;;;12909:18;;:::i;12940:168::-;13013:9;;;13044;;13061:15;;;13055:22;;13041:37;13031:71;;13082:18;;:::i;13113:120::-;13153:1;13179;13169:35;;13184:18;;:::i;:::-;-1:-1:-1;13218:9:84;;13113:120::o;13238:127::-;13299:10;13294:3;13290:20;13287:1;13280:31;13330:4;13327:1;13320:15;13354:4;13351:1;13344:15;13370:114;13454:4;13447:5;13443:16;13436:5;13433:27;13423:55;;13474:1;13471;13464:12;13489:542;13658:5;13645:19;13673:31;13696:7;13673:31;:::i;:::-;13736:4;13727:7;13723:18;13713:28;;13766:4;13760:11;13815:2;13808:3;13804:8;13800:2;13796:17;13793:25;13787:4;13780:39;13867:2;13860:5;13856:14;13843:28;13880:32;13904:7;13880:32;:::i;:::-;14002:20;13992:7;13989:1;13985:15;13981:42;13976:2;13952:20;13948:25;13944:2;13940:34;13937:42;13934:90;13928:4;13921:104;;;;13489:542;;:::o;14036:414::-;14238:2;14220:21;;;14277:2;14257:18;;;14250:30;14316:34;14311:2;14296:18;;14289:62;-1:-1:-1;;;14382:2:84;14367:18;;14360:48;14440:3;14425:19;;14036:414::o;15118:335::-;15197:6;15250:2;15238:9;15229:7;15225:23;15221:32;15218:52;;;15266:1;15263;15256:12;15218:52;15299:9;15293:16;-1:-1:-1;;;;;15324:6:84;15321:30;15318:50;;;15364:1;15361;15354:12;15318:50;15387:60;15439:7;15430:6;15419:9;15415:22;15387:60;:::i;:::-;15377:70;15118:335;-1:-1:-1;;;;15118:335:84:o;15458:245::-;15516:6;15569:2;15557:9;15548:7;15544:23;15540:32;15537:52;;;15585:1;15582;15575:12;15537:52;15624:9;15611:23;15643:30;15667:5;15643:30;:::i;15708:243::-;15765:6;15818:2;15806:9;15797:7;15793:23;15789:32;15786:52;;;15834:1;15831;15824:12;15786:52;15873:9;15860:23;15892:29;15915:5;15892:29;:::i;15956:135::-;15995:3;16016:17;;;16013:43;;16036:18;;:::i;:::-;-1:-1:-1;16083:1:84;16072:13;;15956:135::o;16096:125::-;16161:9;;;16182:10;;;16179:36;;;16195:18;;:::i;16688:287::-;16817:3;16855:6;16849:13;16871:66;16930:6;16925:3;16918:4;16910:6;16906:17;16871:66;:::i;:::-;16953:16;;;;;16688:287;-1:-1:-1;;16688:287:84:o;16980:492::-;17155:3;17193:6;17187:13;17209:66;17268:6;17263:3;17256:4;17248:6;17244:17;17209:66;:::i;:::-;17338:13;;17297:16;;;;17360:70;17338:13;17297:16;17407:4;17395:17;;17360:70;:::i;:::-;17446:20;;16980:492;-1:-1:-1;;;;16980:492:84:o",
|
|
23521
23521
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"../WitnetRandomness.sol\";\nimport \"../apps/UsingWitnet.sol\";\nimport \"../interfaces/IWitnetRandomnessAdmin.sol\";\nimport \"../patterns/Ownable2Step.sol\";\n\n/// @title WitnetRandomnessV2: Unmalleable and provably-fair randomness generation based on the Witnet Oracle v2.*.\n/// @author The Witnet Foundation.\ncontract WitnetRandomnessV2\n is\n Ownable2Step,\n UsingWitnet,\n WitnetRandomness,\n IWitnetRandomnessAdmin\n{\n using Witnet for bytes;\n using Witnet for Witnet.Result;\n using WitnetV2 for WitnetV2.RadonSLA;\n\n struct Randomize {\n uint256 witnetQueryId;\n uint256 prevBlock;\n uint256 nextBlock;\n }\n\n struct Storage {\n uint256 lastRandomizeBlock;\n mapping (uint256 => Randomize) randomize_;\n }\n\n /// @notice Unique identifier of the RNG data request used on the Witnet Oracle blockchain for solving randomness.\n /// @dev Can be used to track all randomness requests solved so far on the Witnet Oracle blockchain.\n bytes32 immutable public override witnetRadHash;\n\n constructor(\n WitnetOracle _witnet,\n address _operator\n )\n Ownable(_operator)\n UsingWitnet(_witnet)\n {\n _require(\n address(_witnet) == address(0)\n || _witnet.specs() == type(IWitnetOracle).interfaceId,\n \"uncompliant WitnetOracle\"\n );\n WitnetRequestBytecodes _registry = witnet().registry();\n {\n // Build own Witnet Randomness Request:\n bytes32[] memory _retrievals = new bytes32[](1);\n _retrievals[0] = _registry.verifyRadonRetrieval(\n Witnet.RadonDataRequestMethods.RNG,\n \"\", // no request url\n \"\", // no request body\n new string[2][](0), // no request headers\n hex\"80\" // no request Radon script\n );\n Witnet.RadonFilter[] memory _filters;\n bytes32 _aggregator = _registry.verifyRadonReducer(Witnet.RadonReducer({\n opcode: Witnet.RadonReducerOpcodes.Mode,\n filters: _filters // no filters\n }));\n bytes32 _tally = _registry.verifyRadonReducer(Witnet.RadonReducer({\n opcode: Witnet.RadonReducerOpcodes.ConcatenateAndHash,\n filters: _filters // no filters\n }));\n witnetRadHash = _registry.verifyRadonRequest(\n _retrievals,\n _aggregator,\n _tally,\n 32, // 256 bits of pure entropy ;-)\n new string[][](_retrievals.length)\n );\n }\n }\n\n receive() virtual external payable {\n _revert(\"no transfers accepted\");\n }\n\n fallback() virtual external payable { \n _revert(string(abi.encodePacked(\n \"not implemented: 0x\",\n Witnet.toHexString(uint8(bytes1(msg.sig))),\n Witnet.toHexString(uint8(bytes1(msg.sig << 8))),\n Witnet.toHexString(uint8(bytes1(msg.sig << 16))),\n Witnet.toHexString(uint8(bytes1(msg.sig << 24)))\n )));\n }\n\n function class() virtual override public pure returns (string memory) {\n return type(WitnetRandomnessV2).name;\n }\n\n function specs() virtual override external pure returns (bytes4) {\n return type(WitnetRandomness).interfaceId;\n }\n\n function witnet() override (IWitnetRandomness, UsingWitnet)\n public view returns (WitnetOracle)\n {\n return UsingWitnet.witnet();\n }\n\n \n /// ===============================================================================================================\n /// --- 'IWitnetRandomness' implementation ------------------------------------------------------------------------\n\n /// Returns amount of wei required to be paid as a fee when requesting randomization with a \n /// transaction gas price as the one given.\n function estimateRandomizeFee(uint256 _evmGasPrice)\n public view\n virtual override\n returns (uint256)\n {\n return (\n (100 + __witnetBaseFeeOverheadPercentage)\n * __witnet.estimateBaseFee(\n _evmGasPrice, \n uint16(34)\n ) \n ) / 100;\n }\n\n /// @notice Retrieves the result of keccak256-hashing the given block number with the randomness value \n /// @notice generated by the Witnet Oracle blockchain in response to the first non-errored randomize request solved \n /// @notice after such block number.\n /// @dev Reverts if:\n /// @dev i. no `randomize()` was requested on neither the given block, nor afterwards.\n /// @dev ii. the first non-errored `randomize()` request found on or after the given block is not solved yet.\n /// @dev iii. all `randomize()` requests that took place on or after the given block were solved with errors.\n /// @param _blockNumber Block number from which the search will start\n function fetchRandomnessAfter(uint256 _blockNumber)\n public view\n virtual override\n returns (bytes32)\n {\n return keccak256(\n abi.encode(\n _blockNumber,\n _fetchRandomnessAfter(_blockNumber)\n )\n );\n }\n \n function _fetchRandomnessAfter(uint256 _blockNumber)\n virtual internal view \n returns (bytes32)\n {\n if (__storage().randomize_[_blockNumber].witnetQueryId == 0) {\n _blockNumber = getRandomizeNextBlock(_blockNumber);\n }\n\n Randomize storage __randomize = __storage().randomize_[_blockNumber];\n uint256 _witnetQueryId = __randomize.witnetQueryId;\n _require(\n _witnetQueryId != 0, \n \"not randomized\"\n );\n \n WitnetV2.ResponseStatus _status = __witnet.getQueryResponseStatus(_witnetQueryId);\n if (_status == WitnetV2.ResponseStatus.Ready) {\n return (\n __witnet.getQueryResultCborBytes(_witnetQueryId)\n .toWitnetResult()\n .asBytes32()\n );\n } else if (_status == WitnetV2.ResponseStatus.Error) {\n uint256 _nextRandomizeBlock = __randomize.nextBlock;\n _require(\n _nextRandomizeBlock != 0, \n \"faulty randomize\"\n );\n return _fetchRandomnessAfter(_nextRandomizeBlock);\n \n } else {\n _revert(\"pending randomize\");\n }\n }\n\n /// @notice Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act that took\n /// @notice place in the Witnet Oracle blockchain in response to the first non-errored randomize request\n /// @notice solved after the given block number.\n /// @dev Reverts if:\n /// @dev i. no `randomize()` was requested on neither the given block, nor afterwards.\n /// @dev ii. the first non-errored `randomize()` request found on or after the given block is not solved yet.\n /// @dev iii. all `randomize()` requests that took place on or after the given block were solved with errors.\n /// @param _blockNumber Block number from which the search will start.\n /// @return _witnetResultRandomness Random value provided by the Witnet blockchain and used for solving randomness after given block.\n /// @return _witnetResultTimestamp Timestamp at which the randomness value was generated by the Witnet blockchain.\n /// @return _witnetResultTallyHash Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.\n /// @return _witnetResultFinalityBlock EVM block number from which the provided randomness can be considered to be final.\n function fetchRandomnessAfterProof(uint256 _blockNumber) \n virtual override\n public view \n returns (\n bytes32 _witnetResultRandomness,\n uint64 _witnetResultTimestamp,\n bytes32 _witnetResultTallyHash,\n uint256 _witnetResultFinalityBlock\n )\n {\n if (__storage().randomize_[_blockNumber].witnetQueryId == 0) {\n _blockNumber = getRandomizeNextBlock(_blockNumber);\n }\n\n Randomize storage __randomize = __storage().randomize_[_blockNumber];\n uint256 _witnetQueryId = __randomize.witnetQueryId;\n _require(\n _witnetQueryId != 0, \n \"not randomized\"\n );\n \n WitnetV2.ResponseStatus _status = __witnet.getQueryResponseStatus(_witnetQueryId);\n if (_status == WitnetV2.ResponseStatus.Ready) {\n WitnetV2.Response memory _witnetQueryResponse = __witnet.getQueryResponse(_witnetQueryId);\n _witnetResultTimestamp = _witnetQueryResponse.resultTimestamp;\n _witnetResultTallyHash = _witnetQueryResponse.resultTallyHash;\n _witnetResultFinalityBlock = _witnetQueryResponse.finality;\n _witnetResultRandomness = _witnetQueryResponse.resultCborBytes.toWitnetResult().asBytes32();\n\n } else if (_status == WitnetV2.ResponseStatus.Error) {\n uint256 _nextRandomizeBlock = __randomize.nextBlock;\n _require(\n _nextRandomizeBlock != 0, \n \"faulty randomize\"\n );\n return fetchRandomnessAfterProof(_nextRandomizeBlock);\n \n } else {\n _revert(\"pending randomize\");\n }\n }\n\n /// @notice Returns last block number on which a randomize was requested.\n function getLastRandomizeBlock()\n virtual override\n external view\n returns (uint256)\n {\n return __storage().lastRandomizeBlock;\n }\n\n /// @notice Retrieves metadata related to the randomize request that got posted to the \n /// @notice Witnet Oracle contract on the given block number.\n /// @dev Returns zero values if no randomize request was actually posted on the given block.\n /// @return _witnetQueryId Identifier of the underlying Witnet query created on the given block number. \n /// @return _prevRandomizeBlock Block number in which a randomize request got posted just before this one. 0 if none.\n /// @return _nextRandomizeBlock Block number in which a randomize request got posted just after this one, 0 if none.\n function getRandomizeData(uint256 _blockNumber)\n external view\n virtual override\n returns (\n uint256 _witnetQueryId,\n uint256 _prevRandomizeBlock,\n uint256 _nextRandomizeBlock\n )\n {\n Randomize storage __randomize = __storage().randomize_[_blockNumber];\n _witnetQueryId = __randomize.witnetQueryId;\n _prevRandomizeBlock = __randomize.prevBlock;\n _nextRandomizeBlock = __randomize.nextBlock;\n }\n\n /// @notice Returns the number of the next block in which a randomize request was posted after the given one. \n /// @param _blockNumber Block number from which the search will start.\n /// @return Number of the first block found after the given one, or `0` otherwise.\n function getRandomizeNextBlock(uint256 _blockNumber)\n public view\n virtual override\n returns (uint256)\n {\n return ((__storage().randomize_[_blockNumber].witnetQueryId != 0)\n ? __storage().randomize_[_blockNumber].nextBlock\n // start search from the latest block\n : _searchNextBlock(_blockNumber, __storage().lastRandomizeBlock)\n );\n }\n\n /// @notice Returns the number of the previous block in which a randomize request was posted before the given one.\n /// @param _blockNumber Block number from which the search will start. Cannot be zero.\n /// @return First block found before the given one, or `0` otherwise.\n function getRandomizePrevBlock(uint256 _blockNumber)\n public view\n virtual override\n returns (uint256)\n {\n assert(_blockNumber > 0);\n uint256 _latest = __storage().lastRandomizeBlock;\n return ((_blockNumber > _latest)\n ? _latest\n // start search from the latest block\n : _searchPrevBlock(_blockNumber, __storage().randomize_[_latest].prevBlock)\n );\n }\n\n /// @notice Returns status of the first non-errored randomize request posted on or after the given block number.\n /// @dev Possible values:\n /// @dev - 0 -> Void: no randomize request was actually posted on or after the given block number.\n /// @dev - 1 -> Awaiting: a randomize request was found but it's not yet solved by the Witnet blockchain.\n /// @dev - 2 -> Ready: a successfull randomize value was reported and ready to be read.\n /// @dev - 3 -> Error: all randomize requests after the given block were solved with errors.\n /// @dev - 4 -> Finalizing: a randomize resolution has been reported from the Witnet blockchain, but it's not yet final. \n function getRandomizeStatus(uint256 _blockNumber)\n virtual override\n public view \n returns (WitnetV2.ResponseStatus)\n {\n if (__storage().randomize_[_blockNumber].witnetQueryId == 0) {\n _blockNumber = getRandomizeNextBlock(_blockNumber);\n }\n uint256 _witnetQueryId = __storage().randomize_[_blockNumber].witnetQueryId;\n if (_witnetQueryId == 0) {\n return WitnetV2.ResponseStatus.Void;\n \n } else {\n WitnetV2.ResponseStatus _status = __witnet.getQueryResponseStatus(_witnetQueryId);\n if (_status == WitnetV2.ResponseStatus.Error) {\n uint256 _nextRandomizeBlock = __storage().randomize_[_blockNumber].nextBlock;\n if (_nextRandomizeBlock != 0) {\n return getRandomizeStatus(_nextRandomizeBlock);\n } else {\n return WitnetV2.ResponseStatus.Error;\n }\n } else {\n return _status;\n }\n }\n }\n\n /// @notice Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first \n /// @notice non-errored randomize request posted on or after the given block number.\n function isRandomized(uint256 _blockNumber)\n public view\n virtual override\n returns (bool)\n {\n return (\n getRandomizeStatus(_blockNumber) == WitnetV2.ResponseStatus.Ready\n );\n }\n\n /// @notice Generates a pseudo-random number uniformly distributed within the range [0 .. _range), by using \n /// @notice the given `nonce` and the randomness returned by `getRandomnessAfter(blockNumber)`. \n /// @dev Fails under same conditions as `getRandomnessAfter(uint256)` does.\n /// @param _range Range within which the uniformly-distributed random number will be generated.\n /// @param _nonce Nonce value enabling multiple random numbers from the same randomness value.\n /// @param _blockNumber Block number from which the search for the first randomize request solved aftewards will start.\n function random(uint32 _range, uint256 _nonce, uint256 _blockNumber)\n external view \n virtual override\n returns (uint32)\n {\n return WitnetV2.randomUniformUint32(\n _range,\n _nonce,\n keccak256(\n abi.encode(\n msg.sender,\n fetchRandomnessAfter(_blockNumber)\n )\n )\n );\n }\n\n /// @notice Requests the Witnet oracle to generate an EVM-agnostic and trustless source of randomness. \n /// @dev Only one randomness request per block will be actually posted to the Witnet Oracle. \n /// @return _evmRandomizeFee Funds actually paid as randomize fee.\n function randomize()\n external payable\n virtual override\n returns (uint256 _evmRandomizeFee)\n {\n if (__storage().lastRandomizeBlock < block.number) {\n _evmRandomizeFee = msg.value;\n // Post the Witnet Randomness request:\n uint _witnetQueryId = __witnet.postRequest{\n value: _evmRandomizeFee\n }(\n witnetRadHash,\n __witnetDefaultSLA \n );\n // Keep Randomize data in storage:\n Randomize storage __randomize = __storage().randomize_[block.number];\n __randomize.witnetQueryId = _witnetQueryId;\n // Update block links:\n uint256 _prevBlock = __storage().lastRandomizeBlock;\n __randomize.prevBlock = _prevBlock;\n __storage().randomize_[_prevBlock].nextBlock = block.number;\n __storage().lastRandomizeBlock = block.number;\n // Throw event:\n emit Randomizing(\n block.number,\n tx.gasprice,\n _evmRandomizeFee,\n _witnetQueryId,\n __witnetDefaultSLA\n );\n }\n // Transfer back unused funds:\n if (_evmRandomizeFee < msg.value) {\n payable(msg.sender).transfer(msg.value - _evmRandomizeFee);\n }\n }\n\n /// @notice Returns the SLA parameters required for the Witnet Oracle blockchain to fulfill \n /// @notice when solving randomness requests:\n /// @notice - number of witnessing nodes contributing to randomness generation\n /// @notice - reward in $nanoWIT received by every contributing node in the Witnet blockchain\n function witnetQuerySLA() \n virtual override\n external view\n returns (WitnetV2.RadonSLA memory)\n {\n return __witnetDefaultSLA;\n }\n\n\n /// ===============================================================================================================\n /// --- 'IWitnetRandomnessAdmin' implementation -------------------------------------------------------------------\n\n function acceptOwnership()\n virtual override (IWitnetRandomnessAdmin, Ownable2Step)\n public\n {\n Ownable2Step.acceptOwnership();\n }\n\n function baseFeeOverheadPercentage()\n virtual override\n external view \n returns (uint16)\n {\n return __witnetBaseFeeOverheadPercentage;\n }\n\n function owner()\n virtual override (IWitnetRandomnessAdmin, Ownable)\n public view \n returns (address)\n {\n return Ownable.owner();\n }\n\n function pendingOwner() \n virtual override (IWitnetRandomnessAdmin, Ownable2Step)\n public view\n returns (address)\n {\n return Ownable2Step.pendingOwner();\n }\n \n function transferOwnership(address _newOwner)\n virtual override (IWitnetRandomnessAdmin, Ownable2Step)\n public \n onlyOwner\n {\n Ownable.transferOwnership(_newOwner);\n }\n\n function settleBaseFeeOverheadPercentage(uint16 _baseFeeOverheadPercentage)\n virtual override\n external\n onlyOwner\n {\n __witnetBaseFeeOverheadPercentage = _baseFeeOverheadPercentage;\n }\n\n function settleWitnetQuerySLA(WitnetV2.RadonSLA calldata _witnetQuerySLA)\n virtual override\n external\n onlyOwner\n {\n _require(\n _witnetQuerySLA.isValid(),\n \"invalid SLA\"\n );\n __witnetDefaultSLA = _witnetQuerySLA;\n }\n\n\n // ================================================================================================================\n // --- Internal methods -------------------------------------------------------------------------------------------\n\n function _require(\n bool _condition, \n string memory _message\n )\n internal pure\n {\n if (!_condition) {\n _revert(_message);\n }\n }\n\n function _revert(string memory _message)\n internal pure\n {\n revert(\n string(abi.encodePacked(\n class(),\n \": \",\n _message\n ))\n );\n }\n\n /// @dev Recursively searches for the number of the first block after the given one in which a Witnet \n /// @dev randomness request was posted. Returns 0 if none found.\n function _searchNextBlock(uint256 _target, uint256 _latest) internal view returns (uint256) {\n return ((_target >= _latest) \n ? __storage().randomize_[_latest].nextBlock\n : _searchNextBlock(_target, __storage().randomize_[_latest].prevBlock)\n );\n }\n\n /// @dev Recursively searches for the number of the first block before the given one in which a Witnet \n /// @dev randomness request was posted. Returns 0 if none found.\n function _searchPrevBlock(uint256 _target, uint256 _latest) internal view returns (uint256) {\n return ((_target > _latest)\n ? _latest\n : _searchPrevBlock(_target, __storage().randomize_[_latest].prevBlock)\n );\n }\n\n bytes32 private constant _STORAGE_SLOT = \n // keccak256(\"io.witnet.apps.randomness.v20\")\n 0x643778935c57df947f6944f6a5242a3e91445f6337f4b2ec670c8642153b614f;\n\n function __storage() internal pure returns (Storage storage _ptr) {\n assembly {\n _ptr.slot := _STORAGE_SLOT\n }\n }\n}\n",
|
|
23522
|
-
"sourcePath": "/home/
|
|
23522
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/apps/WitnetRandomnessV2.sol",
|
|
23523
23523
|
"ast": {
|
|
23524
23524
|
"absolutePath": "project:/contracts/apps/WitnetRandomnessV2.sol",
|
|
23525
23525
|
"exportedSymbols": {
|
|
@@ -38335,7 +38335,7 @@
|
|
|
38335
38335
|
},
|
|
38336
38336
|
"networks": {},
|
|
38337
38337
|
"schemaVersion": "3.4.16",
|
|
38338
|
-
"updatedAt": "2025-10-
|
|
38338
|
+
"updatedAt": "2025-10-15T18:03:23.553Z",
|
|
38339
38339
|
"devdoc": {
|
|
38340
38340
|
"author": "The Witnet Foundation.",
|
|
38341
38341
|
"errors": {
|
|
@@ -425,7 +425,7 @@
|
|
|
425
425
|
"sourceMap": "",
|
|
426
426
|
"deployedSourceMap": "",
|
|
427
427
|
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"./WitnetRequestTemplate.sol\";\n\nabstract contract WitnetRequest\n is\n WitnetRequestTemplate\n{\n /// introspection methods\n function template() virtual external view returns (WitnetRequestTemplate);\n\n /// request-exclusive fields\n function args() virtual external view returns (string[][] memory);\n function bytecode() virtual external view returns (bytes memory);\n function radHash() virtual external view returns (bytes32);\n}",
|
|
428
|
-
"sourcePath": "/home/
|
|
428
|
+
"sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/WitnetRequest.sol",
|
|
429
429
|
"ast": {
|
|
430
430
|
"absolutePath": "project:/contracts/WitnetRequest.sol",
|
|
431
431
|
"exportedSymbols": {
|
|
@@ -817,7 +817,7 @@
|
|
|
817
817
|
},
|
|
818
818
|
"networks": {},
|
|
819
819
|
"schemaVersion": "3.4.16",
|
|
820
|
-
"updatedAt": "2025-10-
|
|
820
|
+
"updatedAt": "2025-10-15T18:03:23.537Z",
|
|
821
821
|
"devdoc": {
|
|
822
822
|
"kind": "dev",
|
|
823
823
|
"methods": {},
|