diff --git a/lib/amm_dex_v2/math.ak b/lib/amm_dex_v2/math.ak index 09a1577..dadac93 100644 --- a/lib/amm_dex_v2/math.ak +++ b/lib/amm_dex_v2/math.ak @@ -74,7 +74,9 @@ pub fn calculate_max_in_swap( let numerator = io_ratio_numerator * diff * reserve_out - io_ratio_denominator * trading_fee_denominator * reserve_in let denominator = io_ratio_denominator * diff - numerator / denominator + let max_in_swap = numerator / denominator + expect max_in_swap > 0 + max_in_swap } pub fn calculate_amount_out_fraction( @@ -98,16 +100,12 @@ pub fn calculate_amount_in( amount_out: Int, trading_fee_numerator: Int, trading_fee_denominator: Int, -) -> Option { - if amount_out >= reserve_out { - None - } else { - let diff = trading_fee_denominator - trading_fee_numerator - let numerator = reserve_in * amount_out * trading_fee_denominator - let denominator = ( reserve_out - amount_out ) * diff - let amount_in = numerator / denominator + 1 - Some(amount_in) - } +) -> Int { + expect amount_out < reserve_out + let diff = trading_fee_denominator - trading_fee_numerator + let numerator = reserve_in * amount_out * trading_fee_denominator + let denominator = ( reserve_out - amount_out ) * diff + numerator / denominator + 1 } // Calculate liquidity amount which will be minted for profit sharing diff --git a/lib/amm_dex_v2/order_validation.ak b/lib/amm_dex_v2/order_validation.ak index 5a6ff46..c0a9657 100644 --- a/lib/amm_dex_v2/order_validation.ak +++ b/lib/amm_dex_v2/order_validation.ak @@ -124,7 +124,7 @@ fn validate_swap_exact_out( temp_amount_in } let has_enough_amount_in = maximum_amount_in > 0 - let necessary_amount_in_opt = + let necessary_amount_in = math.calculate_amount_in( reserve_in, reserve_out, @@ -132,7 +132,6 @@ fn validate_swap_exact_out( trading_fee_numerator, trading_fee_denominator, ) - let necessary_amount_in = utils.must_parse_option(necessary_amount_in_opt) let not_over_slippage = necessary_amount_in <= maximum_amount_in let actual_amount_out = value.quantity_of( diff --git a/plutus.json b/plutus.json index c8ea0a0..9d5b459 100644 --- a/plutus.json +++ b/plutus.json @@ -158,8 +158,8 @@ } } ], - "compiledCode": "5930d60100003232323232323232322322322322322322223232323232323232533301832323232533301c3370e9001180d800899191919191919191919191919191919191919191919191919299981a99b874800005c4c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc130cccccccc0a00400180100581180481000284cccccccccc8c8c8c8c8c8c8c8c8888888888c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc1ed4ccc1ed4ccc1eccdd79ba7003374e03c266e1cc134010c12c00c528099b87304d002304d00114a02a6660f666e1cc134008c1340044c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc258054ccc258054ccc258054ccc258054ccc258054ccc25804cdc380600b099b8700a01414a0266e1c020048528099b8700601014a0266e1c01003852808008a5014a22c66e1c008cdc080081199b8100e0153370201e02c6eb4c25c04004c25c04008dd6984a80800984a808011bad309301001309301002375a6122020026122020046eb4c23c04004c8cccc00400404404005888894ccc2400400c40044c8c94ccc24804010400c4c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc2ac054ccc2ac054ccc2ac04cdc424000006266e21200000114a0266ebc11401c5280999981101100e80d9929998560099b87480000044c8c8c8c94ccc2c004cdc4240000022a666160026660fa02001c042264666666666660be03602c00209e09a01200e09208e04a466e2400c004c94ccc2c404cdc3a400000229445281857808018b0b1bad30b40100130b40100230b20100130aa01006153330ac013370e900100089919191929998580099b884800000454ccc2c004ccc1f40400380844c8ccccccccccc17c06c05800413c13402401c12411c0948cdc48008019929998588099b87480000045288a5030af010031616375a61680200261680200461640200261540200c2a6661580266e1d2004001132323232323253330b20153330b201337109000001899b88480000045280a9998590099983f8090080118991999999999983080e80c0008288278058048258248139299985a0099b8900500114a2266e2400400cc94ccc2cc04cdc3a400000229445281858808028b0b1bad30b60100130b601002375a61680200261680200461640200261540200c2a6661580266e1d200600113232323253330b0013371090000008a9998580099983e80800701089999999999111111111919191919191919191919191919191919191919191919191919191919191919191919299986e00a99986e00a99986e0080408028a50100114a02a6661b8020582661c0026ea0cdc001180319870009ba833702042056661c0026ea007ccc38004dd400e99870009ba801b4bd70099870009ba833702046056661c0026ea0cdc001080319870009ba801f330e001375003a661c0026ea006d2f5c02ca6661b602661620202001c2a6661b60266e1c00c0a84cdc380119b813370004c01000a294054ccc36c04cc2c40403002854ccc36c04cdc380199b8002a02613370e00266e040200145280a99986d80a99986d8099b8700302a13370e00266e04020014528099b8700202614a06661620207e01e01a6661600207c9101004881003330af0103d00900733712002008a6661ac0266e1d200030d5010011375a61b60261a8020022ca6661aa0266e240300905300103d87a800013374a90001986c809ba83370066e0ccdc119b8200e02401e3370466e04030090cdc080f00fa400497ae0337109000000a999869809985480804003099b810013370003e03c20026661520207800e00a6eb8c35804004c35804008dd7186a008009866008049bae30d20100130d201002375c61a00200261900200e6eb4c33804004c33804008dd6986600800986600801186500800986500801186400800a9998610080909986300808198630080799863009ba8009330c601375000e97ae01330c60100f330c601010330c601375000e6618c026ea00252f5c06eb4c31804004c31804008dd69862008009862008011bad30c20100130c201002375a6180020026180020046eb4c2f804004c94ccc2c404cdc3a400000229445281857808018008270260040030240230120b0b1bad30b40100130b40100230b20100130aa01006153330ac013370e90040008991929998570099b884800000454ccc2b804ccc1ec03803007c4c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc34c054ccc34c054ccc34c04034402452808030a501330d701375000a661ae026ea0010cc35c04dd419b8033700042014004661ae026ea0cdc000f8011986b809ba80014bd700b1bad30d401002375a61a40200264a6661a20266e1d20000011323232337606ea0ccccc20c04078030088dd6986c808009bad30d90130da010013750610c0266e08018014c34404004c35c04004c33c041944cdd826010100003750036619e020c866e0007c02ccdc0010004a9998668099b8700102313370e0040082940ccc28c040c52201004881003330a20103000b0093371203a0026eb4c32c04008dd6986480800991929998648099b880010021323232323232337606ea0cdc019b833370466e00cdc101080200299b813370403e00200466e080100052002375066e0ccdc119b803370401600200403a66e04cdc100f8008011bad30d001002375a619c020026666660fa03c0380040020c80c46eb4c33404008dd698658080099999983c80200280d80c83082f8a9998648099b880020011323232323232337606ea0cdc019b833370466e00cdc100f80200299b813370404200200466e080100052002375066e0ccdc119b803370401400200403a66e04cdc10108008011bad30d001002375a619c020026666660fa03803c0040020c80c46eb4c33404008dd698658080099999983c80280200c80d83082f899bb0375066e0806c064dd400119b833370400802c03066e0ccdc100100a80ca99986300a9998630099b89480000044cdc4a400000429404cdc42400066e000040085282999862809984d80806805899b810023370003a03620046661360205c01000c6661340205a0160126eb8c31c04004c31c04008dd7186280800985e8082c9bae30c30100130c301002375c6182020026172020ae6eb8c2fc04004c2fc04008dd7185e80800985a8082a9bad30bb0100130bb01002375a6172020026172020046eb4c2dc04004c2dc04008dd6985a80800985a808119bad30b3010221616375a61640200261540200c2a6661580266e1d200a00113232323253330b00153330b001337109000001899b88480000045280a9998580099983e8080070108991919191919191919191919191919191919191919191919191919191919191919191919299986a00a99986a00a99986a0080708050a50100614a02661b0026ea0014cc36004dd40021986c009ba83370066e0408003c008cc36004dd419b8001e002330d801375000297ae016375a61aa020046eb4c34c04004c94ccc34804cdc3a4000002264646466ec0dd4199998420080e99b82025023021375a61b4020026eb4c36804c36c04004dd418438099b8200600530d20100130d80100130d0010661337609801010000375003461a0020ca66e0407801ccdc080f803a99986700998520080a0090a9998670099b870033370000c048266e1c0080145280a99986700a9998670099b8700102413370e00600c29404cdc38010028a503330a401032489004881003330a30103100e00c3330a20103001100f53330ca013371203a004266e2406c0045281bad30cb01002375a61920200266660f402e02a00402666e21200000133309c0102f003001375c6192020026192020046eb8c31c04004c2fc0416cdd71862808009862808011bae30c30100130bb01059375c6182020026182020046eb8c2fc04004c2dc0415cdd6985e80800985e808011bad30bb0100130bb01002375a6172020026172020046eb4c2dc04004c2dc04094dd6985a808120b0b1bad30b40100130b401002375a61640200261540200c2a6661580266e1d200c00113232323253330b0013371090000008a9998580099983e8080070108999999999911111111191919191919191919191919191919191919191919191919191919191919299986b80a99986b80a99986b8080588020a50100114a02a6661ae0204e2661b6026ea0078cc36c04dd419b8101c008330db01375066e00cdc080d0060031986d809ba83370003000c661b6026ea00152f5c02661b6026ea0cdc080f0041986d809ba801c330db01375066e00cdc080d0060031986d809ba83370003000c661b6026ea00152f5c02ca6661ac026615802024020266e1c004cdc00110038a99986b0099b8700100713370e0440042940ccc2b0040e804403cccc2ac040e5220100488100337120480086eb4c35004008dd69869008009929998688099b87480000044c8c8c8cdd81ba833333083010133370403603202e6eb4c36404004dd6986c80986d008009ba830860100630d10100130d70100130cf0101c1337609810100003750020619e020366eb4c34404008dd6986780800991919191919bb0375066e08008004dd4299986900811099b800033333309e0100200100401c01b1337000086666613c0200200400603803666e04058008cdc080b8011bad30d101002375a619e0200266661000202802400402066e2120000013330a201035003001375c619e02002619e020046eb8c33404004c31404050dd71865808009865808011bae30c90100130c10100153330c20101210101011375a618c02002618c020046eb4c31004004c31004008dd69861008009861008011bad30c00100130c001002375a617c0200264a6661620266e1d200000114a22940c2bc0400c1381301280181101201180905858dd6985a00800985a008011859008009855008030a9998560099b87480380044c8c8c8c8c8c8c8c8c8c94ccc2d8054ccc2d8054ccc2d804cdc42400000e266e21200000714a0266e21200000314a0264646464646464646464646464a66618602a66618602002264646464646464a6661940266e1d200230c90100113232323232323232323232323232323253330da013370e9007186c80802899191919191919191919299987200a99987200a99987200a99987200a99987200a99987200a99987200a99987200a99987200a99987200a9998720099b8f01907613375e08c02e29404cdd782200a8a5013375e08402629404cdc381e0068a5013370e07401629404cdd78200088a5013375e06e01229404cdc381a8038a5013370e06600a29404cdc399b810314800800c528099b8702f00114a06eb4c3a004004c3a004008dd69873008009873008011bad30e40100130e401002375a61c40200261c40200461c00200261b00200a2c6eb4c37804004c37804008dd6986e00800986e00801186d00800986d00801186c00800986c00801186b00800986b00801186a00800986a008011869008009865009984d008398029bae30d00100130c8010011630ce0100130c60100430cc0100130cc0100130cb0100230c90100130c1010341333090010230210341330c70137500166618e026ea0024cc31c04dd400399863809ba8005330c701375000697ae0163370e90011861809baa30c70100130c701002375a618a02002618a020046eb4c30c04004c30c04008dd69860808009860808011bad30bf0100130bf01002375a617a02002646464646464646464646464646464646464646464646464646464646464646464a6661b002a6661b00266e21200000213371204600429404c8c8c8c8c8c94ccc378054ccc3780402c4004528099299986f80814899871809ba833700050012661c6026ea0cdc081300399871809ba8024330e3013750044661c6026ea0080cc38c04ccc37c04005300103d87a80004c0103d87980004bd70099871809ba83370205000e661c6026ea0cdc001300499871809ba8024330e3013750044661c6026ea0080cc38c04ccc37c0400530103d87a80004c0103d87980004bd70299986f0099b8848000cdc0815a4004266e240a401c5280b299986e80998598080a0090a99986e8099b870013370000c008266e1c008cdc00018028a50153330dd01330b30101000e153330dd013370e00200c266e1c008cdc000199b8200500414a0264a6661bc02a6661bc0266e1c00801c4cdc380199b8000400614a0266e1c01400452819985a00821245004881003330b3010410130113330b20104000e00c3330b10104400d00b3370066e080c4cdc08132400405e66666148020260220040e00dc2c6eb4c36404008dd6986b80800a99986a8099b890030011337606ea000d30010100001337606ea0004dd419b81003001323370666e04cdc119b8202600100e3370466e080901ac040cdc101200099b8106a06c337109000000a999869009985400804803899b8100100210013330a80103b0080063370066e080a0074098dd7186a00800986a008011bae30d20100130ca01009375c61a00200261a0020046eb8c33804004c3180401cdd69866008009866008011bad30ca0100130ca0100230c80100130c80100230c60100153330c00100a1330c40105e330c40105c330c401375001266188026ea001d2f5c0266188020b866188020bc66188026ea001ccc31004dd4004a5eb80dd69862008009862008011bad30c20100130c201002375a6180020026180020046eb4c2f804004c2f8040b0dd6985e0081599299985b8099b87480000045288a5030b50100916375a6174020026174020046eb4c2e004004c2e004008dd6985b00800985b008011bad30b40100130b40100230b20100130aa01006132630aa0100630aa0100516375a615e02002615e020046eb4c2b404004c2b404008c2ac04004c2ac04008c2a404004c2a404008c29c04004c29c04008c29404004c29404008c28c04004c26c04004cc1a810c010dd5985000800985000800984b80805184e80800984e808011bab309b01001309b01001309201001309801001309801001308f01004309601005309401004309401004309201003375a611a02002611a020046eb4c22c04004c22c04008dd69844808009844808011bad30870100130870100b375a610a020146eb4c21004004c21004008dd69841008009841008009840808038b0b1982701111919299983e99983e99baf00100d4a09444ccc1f4cdd7800810a504a22940c20404004c1e4004c8ccc0040040092f5c0444a6660fe004200226660060066104020046644661040260b6660b800e0040026eb4c20404008004c09006ccc12c0808c8c8c8c8c8c8c8c94ccc20004cdc3a4004002266e3cdd7184280983f0010090a50307e001308301001307b0013081010013079001307f001307f0013076001375860f600260f60046eb0c1e4004c1e4008dd6983b800983b801183a800983a8011bae3073001307300230710013071002375a60de00260de0046eb4c1b4004c1b4008c1ac004c1ac008c1a4004c1a4008c19c004c17ccccccc0d800800403002c018020c188008c180004c8c94ccc18cc1980084c8c8c8c8c8c8c8c8c94ccc1b0c1bc0084c94ccc1b4c1c00044c94ccc1b8c1c40044cdd80060018b1981f009119baf3070306930703069001005163303d01223375e60de60d060de60d060de60e060d00020082c60da0026607601e466ebc010c1b4c198004c1ac004c18c004c1a4004c184004c19c004c19c004c17800458c190004cc0c801c8cdd78029832182e800980080091299982c0008a5eb804c8c8cc16cdd400119802002191980080080111299982e0008a5eb804c8c94ccc16cccc16ccdc38010032504a22660be6ea0008cc0100100044cc010010004c180008dd6982f000982e0011bad305a001222222222223232323232323232323232323232323232323232323232323232323232323232533307d533307d533307d005100314a02002294054ccc1f40a44cc20404dd419b800200063308101375066e04078010cc20404dd400e19840809ba801a3308101375003097ae013308101375066e04080010cc20404dd419b8001e0063308101375003866102026ea0068cc20404dd400c25eb80594ccc1f0cc14802401c4cdc399b80003024001132533307d3370e008004266e1c004094528199829814a44100488100333052028008006301e0013333304500e00c00202001f337109000000a99983b99826804003099b810013370004003e200266609a04800e00a6eb8c1e8004c1e8008dd7183c00098380049bae30760013076002375c60e800260d800e6eb4c1c8004c1c8008dd698380009838001183700098370011836000a99983300909983500899835008198351ba80093306a375000e97ae013306a0103306a0113306a375000e660d46ea00252f5c06eb4c1a8004c1a8008dd6983400098340011bad30660013066002375a60c800260c80066eb4c188008888894ccc158cdc4802a400029000099299982b99b880060011323232533305a33710900000088008a400066e0c008004cdc019b823370200600800466e0801001ccdc119b820030043370200200c2900018040021111111919191919bb0375066e04c030cdc0980700099b823370400600a66e04014018004dd419b820023370200a00c66e08cdc099b824801001001400ccdc12400866e0001c014cdc119b8248020cdc000300219b813370400c601600a66e08cdc100380280219b823370000a0060084444446466ec0dd419b823370400a00200c6ea0cdc019b823370400400800e66e08014004cdc08008011299982799b88001480005854ccc13ccdc3800a4000290000a99982799b8700148008520021533304f3370e00290020a400426464666002002006004444a6660a666e200040084ccc00c00c004cdc199b803370600a0020029002080119b8033706002900224004444466ec0dd419b83337040040080026ea0cdc199b8200200300123370400200209008802001a00205e07e02c0282c6eacc140004c140004c13c008dd61826800982680118258009825800982500098248011bab30470013047001304600237586088002608800260860046eb0c104004c0e4088dd6981f800981f8011bac303d001303d002303b0013033027153330353370e900100b899191919191919191919299981fa99981f99b8700200113371290020008a501323232323232323232323232323232323253330503333333302c01000600401a04a01804400a13333333333232323232323222222222232323232323232323232323232323232533307330760021323253330753078002132323232323232323232323232323232323232323232323232533308b01533308b01533308b01533308b01337109000002099b884800000852808008a5013375e04e01029404c94ccc23004cdc3a4020002264646464a6661200266e21200000113232323232323232323232323232323232323232323232323232323232323253330af013371204000226464a666162020022944594ccc2c004cc2180401c0144cdc399b8000202700113253330b1013370e006004266e1c0040a05281998438081a245004881003330860103300600416333305a001480001380854ccc2b404cc20c040200184cdc080099b80026024100133308301035007005375c6160020026160020046eb8c2b804004c29804014dd71856008009856008011bae30aa0100130a2010023253330a4013370e9000000880188029851008051929998518099b874800000440204018c28404030c29804004c29804008c29004004c2700402cc28804004c28804008c28004004c26004020c27804004c27804004c25404018c26c04004c26c04004c24804010cc0f40cccdc09832819a40046607806490001981d80219b81306300448008cc0e800d200016375a6128020026128020046eb0c24804004c2280401c5281845008030b19982b80580480c9bad308e01001308e01002375a611802002611802004611402002611402004611002002611002004610c02002610c0200461080200261080200260f6660960440086eacc20404004c20404004c1e0024c1f8004c1f8008dd5983e000983e0009839800983c800983c80098380018b183b0009982200b119191919299983a99983a99baf0030184a09444ccc1d4cdd78008042504a22940c1e4004c1c4004c1dc004c1bc00458c1d0004cc1080548c8c8c8c8c8c8c8c94ccc1dccdc3a4004002266e3cdd7183e183a8010070a503075001307a00130720013078001307000130760013076001306d0013072001306a00130700013070002375c60dc00260dc00260da00260d800260d600460d200260d200260d000260be660160029000191919191929998341835801099191919191919299983619b87303e3304001323375e60e460d660e460d660e460e660d60020040142a6660d866e1cc0f8cc1000488cdd7983918359839183580080100509919980080080680611129998390010a9998390008a5eb80584c8c94ccc1d000c52f5c02660ea64646464646464646464646464646464a66610202a6661020266ebc02c0184c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc294054ccc294054ccc294054ccc294054ccc294054ccc294054ccc294054ccc29404cdd7811808899baf02100f14a0266e1c07c034528099b8701d00b14a0266e1c06c024528099b8701900714a0266e1c05c014528099b8f01500314a0266ebc04c0045281854808009854808011bae30a70100130a701002375a614a02002614a020046eb4c28c04004c28c04008dd69850808009850808011bad309f01001309f01002375a613a02002613a02004613602002613602004613202002612202026612e02002612e020046eb8c25404004c25404008dd69849808009849808011bad309101001309101002375a611e02002611e020046eb4c23404004c23404008dd6984580800984580801184480800984480801184380800983f8010a50133333305601201002a0290020261633058025002330570240063083010013083010013082010023080010013078009307e001307e001307d002307b00130730013079001307900130700033076003333005005001307700330760033074002161630700013068001306e0013066001306c001306c00130630011630690013303700a23375e01060d260c400260680046601e0044660180100026601c0044660160100026002002444a6660b066e2520140011333003003305e305e305e305e305e305e305e305e305e305e00233702002900a099803801000980080091111299982d801080189919299982e80188028991919199998050050008008020011919191919191919191919191919191919191919191919191919299983b19baf01700313232325333079337109000012899299983d19b884800000454ccc1e8c94ccc1eccdc3a40000022a6660f666e1ccdc0007813806099b873370201a004014294054ccc1eccdc399b8100f00200c13370e66e0003409c028528183c80288008b0b1999982280100081280c00b0b1bad307a002375a60f000264a6660ee66e1d20000011337606ea002cdd4004899bb037500126ea002cc1d400458c1e8004c1e8008c1e0004c1c0060dd6983b000983b0029bad3074004375a60e600260e60086eb4c1c400cdd6183800098380011bac306e001306e001306d001306c001306b001306a002375a60d000260d00046eb4c198004c198008c190004c190004c18c004c168010c184010c17c00cc17c00cc17400888c8cc00400400c894ccc16400452f5c02660b460066eb4c16c004cc008008c170004c0040048894ccc14ccdc4800a4000260b0004266600600660b200466e04005200204c04801000d00103301a01601416375660a800260a800260a60046eb0c144004c144008c13c004c13c004c138004c134008dd59825800982580098250011bac3048001304800130470023758608a002607a04c2c601c004601a0066eb0c104004c104008dd6181f800981f8011bad303d001303d002303b0013033027153330353370e900200b89925130330271324a2606604e44444646466e0ccdc100080319b803370400600e00266e08004010cdc0800801111191919191919299981e299981e19baf009005100114a0294458c94ccc0f0cdc3a40000022646464a66607e66e1d2000001161533303f3370e9001000899b8f375c6088607a00a004266e3cdca1bb33044303d005002303d004375c60840026074010266ebc009300103d8798000303a007303f001303f001303e002303c00130340012232320023253330363370e900000089919191919191919191919191919299982398250010991919191924c64a66609266e1d200000113232323253330503053002132498c07000c58dd698288009828801182780098238050a99982499b87480080044c8c8c8c94ccc140c14c0084c926301c00316375a60a200260a2004609e002608e0142a66609266e1d2004001132323232323253330523055002132498c07801458dd6982980098298011bad30510013051002304f001304700a153330493370e90030008991919192999828182980109924c60380062c6eb4c144004c144008c13c004c11c02854ccc124cdc3a401000226464a66609c60a20042930b1bad304f001304700a153330493370e9005000899191919299982818298010a4c2c6eb4c144004c144008dd6982780098238050a99982499b87480300044c8c8c8c94ccc140c14c0084c926301c00316375a60a200260a2004609e002608e0142a66609266e1d200e00113232323232323232323253330563059002132498c08802458dd6982b800982b8011bad30550013055002375a60a600260a60046eb4c144004c144008c13c004c11c02854ccc124cdc3a4020002264646464a6660a060a6004264931981b801919299982799b87480000044c8c8c8c94ccc158c1640084c8c9263023002304000316305700130570023055001304d00216304d00116375a60a200260a20046eb0c13c004c11c02858c11c024c0d0028c0d402cc0cc030c0c803458dd6982400098240011bad30460013046002304400130440023042001304200230400013040002303e001303e002303c00130340021630340013300f00200123253330333370e90000008a99981b18188010a4c2c2a66606666e1d200200115333036303100214985858c0c4004c004004894ccc0d000452000133700900119801001181b80098008009129998190008a4000266e01200233002002303500122323300100100322533303300114bd70099192999819180280109981b00119802002000899802002000981b801181a800911111191919191919191919191919191919191919191919191919191919191919191919191919191919299982c191919191919191919191919191919191919191919191919191919191919299983b299983b299983b299983b299983b19baf01d00e13375e03601829404cdc380b0038a5013370e02800a29404cdc78090018a5013375e0200022940c1e8004c1e8008dd7183c000983c0011bad30760013076002375a60e800260e800260e600260e400260e200460de00260de00460da00260ca03060d600260d60046eb8c1a4004c1a4008dd6983380098338011bad3065001306500130640013063001306200230600013060002305e001305602913232323232323232323253330623370e66607205606a06890010a99983119b87333039028035034480084c8c8c8cdd2a4000660d204e660d204a660d2008660d26ea0074cc1a4dd400d9983480b998349ba90193306903033069375066e04ccc0f00ac0e0014ccc0f00b80e0014cc1a4dd3998349833000998349ba833303c02e008006330693750046660d26ea007ccc1a4dd4010a5eb80cc1a4dd3998349833800998349ba833303c02b008006330693750024660d26ea0038cc1a4dd400825eb812f5c0a6660c866074016012266ec0dd419b81002482026fb808dd419b81001482026fb8084cdd81ba8002375000266607405201401066607205601200e2c2c66e952000330653752068660ca6ea40052f5c060726607460726607400e00a6072660740060026eb8c190004c190008dd71831000982d00e1bae30600013060002375c60bc00260ac0342c6eb4c170004c170008dd6982d000982d0011bad305800130580013057001304e0013302701f01330530013053002375c60a200260a20046eb4c13c004c13c008dd6982680098268011bad304b001304b002375a609200260920046eb4c11c004c11c008c114004c114008c10c004c0ec038c104004c104008dd5981f800981f800981b0061bab303c001303c002303a001303200130380013038001302f00622533302c3371e0049110013371e0029110014a044464664464a66606066e1d200200110021375a606a605c006605c00464a66605c66e1d200200114c103d87a8000132323300100100222533303400114c103d87a800013232323253330353371e014004266e95200033039375000297ae0133006006003375a606c0066eb8c0d0008c0e0008c0d8004dd5981998160011816000a40006601a006004446464004602e0026600a00400246e4c00488cdc500100091180219299981419b8748000004530103d87a8000153330283370e900100089919198008008029129998170008a6103d87a8000132323232533302f3371e00e004266e952000330330014bd7009980300300198180019bae302e00230320023030001375c605a604c004266e9520003302c302d30260024bd70181300091111111299981619299981819198008008011129998190008a5eb804c8ccc888c8cc00400400c894ccc0e0004400c4c8ccc888cc0f4dd39981e9ba90093303d37520066607a6ea00092f5c00026eb8c0dc004dd6981c00099801801981e001181d0009bae30310013756606400266006006606c0046068002294458c8cc004004008894ccc0c400452f5bded8c0264646464a66606466e3d2201000021003133036337606ea4008dd3000998030030019bab3033003375c6062004606a00460660022a666058646464646464646464646464a66607066e1d2000303700113232533303a533303a533303a323300100101522533303f00114a026464a66607c66e3c00801452889980200200098218011bae304100113371200a01029404cdc480419b8000601014a0294458dd7181f000981b0008b181e000981a0079bad3037002375a606a00264a66606866e1d20023033001132323253330373370e9001181b000899bb037500046078606a0022c602c60686076607860680226eb4c0e8004c0c800458c04cc0c4c04cc0c4038c8c94ccc0dcc0e80084c8c94ccc0d8cdc3800a400426464666002002900024000444a66607466e1c00801040044c94ccc0ed4ccc0eccdc3801a4000266e1c005205a14a0266e08ccc010010cdc0001a400400490008a99981da99981da99981d99b8800148180528899b8800148180528899b88337009030240240022c266600800866e0000d20023370066e08009201433702002903019b8e006002371a0042c6eb4c0dc008dd7181a8008b181c000999119299981a99b874800800440084dd5981d181980198198011980980080525eb7bdb180dd5981b000981b00098168009819800981980098151804998050040018a511616253330243370e900018118008981498110008b180080091129998138010a60103d87a80001323253330263370e0069000099ba548000cc0a80092f5c0266600a00a00266e0400d2002302b00330290022302600122323300100100322533302600114c103d87a800013232323253330273371e00e004266e9520003302b374c00297ae0133006006003375660500066eb8c098008c0a8008c0a0004c074040c088004c06800458c080004c080008c078004c058024526163253330183370e90000008991919191919299981098120010991924c6601200846eb4004c03001458dd6981100098110011bac30200013020002301e001301600a153330183370e90010008991919191919191929998119813001099191924c6601800646eb4004cc02c0108dd680098070038b1bac302400130240023758604400260440046eb4c080004c080008c078004c05802854ccc060cdc3a400800226464a66603a60400042930b1bad301e001301600a153330183370e9003000899191919299980f98110010a4c2c6eb4c080004c080008dd6980f000980b0050b180b00491191980080080191299980e8008a4c2646600600660420046006603e0026002010464a66602c66e1d20000011323232323232323232323232323232323232533302b302e0021323232498c94ccc0accdc3a400000226464a66606060660042649319299981719b87480000044c8c8c8c8c8c8c8c94ccc0e4c0f00084c8c9263026002302400316303a001303a00230380013038002375a606c002606c0046eb4c0d0004c0b000858c0b000458c0c4004c0a401054ccc0accdc3a40040022a66605c60520082930b0b1814801980b008180a8088b181600098160011bae302a001302a002375a605000260500046eb4c098004c098008dd6981200098120011bad30220013022002375a60400026040004603c002603c004603800260280042c6028002464a66602a66e1d2000001132323232533301c301f002149858dd7180e800980e8011bae301b001301300216301300123253330143370e9000000899191919299980d980f0010991924c64a66603466e1d200000113232533301f3022002132498c94ccc074cdc3a400000226464a666044604a0042649318078008b1811800980d8010a99980e99b87480080044c8c8c8c8c8c94ccc098c0a400852616375a604e002604e0046eb4c094004c094008dd69811800980d8010b180d8008b1810000980c0018a99980d19b874800800454ccc074c06000c52616163018002300800316301c001301c002301a001301200216301200123253330133370e900000089919299980c180d8010a4c2c6eb8c064004c04400854ccc04ccdc3a40040022a66602c60220042930b0b1808800919299980919b87480000044c8c94ccc05cc06800852616375c603000260200042a66602466e1d2002001132325333017301a002149858dd7180c00098080010b18080009bad001375c0026eb8004dd70009bae001230053754002460066ea80055cd2ab9d5573caae7d5d02ba157441", - "hash": "3926cc994795e1c0e4f91de0305a9bb97b8ca95645df0afc64e8f918" + "compiledCode": "5930bd0100003232323232323232322322322322322322223232323232323232533301832323232533301c3370e9001180d800899191919191919191919191919191919191919191919191919299981a99b874800005c4c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc130cccccccc0a00400180100581180481000284cccccccccc8c8c8c8c8c8c8c8c8888888888c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc1ed4ccc1ed4ccc1eccdd79ba7003374e03c266e1cc134010c12c00c528099b87304d002304d00114a02a6660f666e1cc134008c1340044c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc258054ccc258054ccc258054ccc258054ccc258054ccc25804cdc380600b099b8700a01414a0266e1c020048528099b8700601014a0266e1c01003852808008a5014a22c66e1c008cdc080081199b8100e0153370201e02c6eb4c25c04004c25c04008dd6984a80800984a808011bad309301001309301002375a6122020026122020046eb4c23c04004c8cccc00400404404005888894ccc2400400c40044c8c94ccc24804010400c4c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc2ac054ccc2ac054ccc2ac04cdc424000006266e21200000114a0266ebc11401c5280999981101100e80d9929998560099b87480000044c8c8c8c94ccc2c004cdc4240000022a666160026660fa02001c042264666666666660be03602c00209e09a01200e09208e04a466e2400c004c94ccc2c404cdc3a400000229445281857808018b0b1bad30b40100130b40100230b20100130aa01006153330ac013370e900100089919191929998580099b884800000454ccc2c004ccc1f40400380844c8ccccccccccc17c06c05800413c13402401c12411c0948cdc48008019929998588099b87480000045288a5030af010031616375a61680200261680200461640200261540200c2a6661580266e1d2004001132323232323253330b20153330b201337109000001899b88480000045280a9998590099983f8090080118991999999999983080e80c0008288278058048258248139299985a0099b8900500114a2266e2400400cc94ccc2cc04cdc3a400000229445281858808028b0b1bad30b60100130b601002375a61680200261680200461640200261540200c2a6661580266e1d200600113232323253330b0013371090000008a9998580099983e808007010899999999991111111119191919191919191919191919191919191919191919191919191919191919191919299986d80a99986d80a99986d8080388028a50100114a02a6661b6020562661be026ea0cdc00110031986f809ba833702040054661be026ea0078cc37c04dd400e1986f809ba801a4bd7009986f809ba833702044054661be026ea0cdc00100031986f809ba801e330df013750038661be026ea00692f5c02ca6661b402661600201e01a2a6661b40266e1c00c0a44cdc380119b813370004a00e00a294054ccc36804cc2c00402c02454ccc36804cdc380199b8002902513370e00266e0401c0145280a99986d00a99986d0099b8700302913370e00266e0401c014528099b8700202514a06661600207c01c01866615e0207a9101004881003330ae0103c00800633712002006a6661aa0266e200900304cdc019b833370466e08038090078cdc119b8100c0243370203c03e90010b19b88480000054ccc34c04cc2a4040200184cdc080099b8001f01e10013330a90103c007005375c61ac0200261ac020046eb8c35004004c33004024dd71869008009869008011bae30d00100130c801007375a619c02002619c020046eb4c33004004c33004008c32804004c32804008c320040054ccc308040484cc31804040cc3180403ccc31804dd400499863009ba80074bd7009986300807998630080819863009ba8007330c601375001297ae0375a618c02002618c020046eb4c31004004c31004008dd69861008009861008011bad30c00100130c001002375a617c0200264a6661620266e1d200000114a22940c2bc0400c0041381300200181201180905858dd6985a00800985a008011859008009855008030a9998560099b87480200044c8c94ccc2b804cdc4240000022a66615c026660f601c01803e264646464646464646464646464646464646464646464646464646464646464646464646464a6661a602a6661a602a6661a60201a20122940401852809986b809ba8005330d7013750008661ae026ea0cdc019b8002100a002330d701375066e0007c008cc35c04dd4000a5eb8058dd6986a008011bad30d2010013253330d1013370e9000000899191919bb03750666661060203c0180446eb4c36404004dd6986c80986d008009ba83086013370400c00a61a20200261ae02002619e020ca266ec13010100003750036619e020c866e0007c02ccdc0010004a9998668099b8700102313370e0040082940ccc28c040c52201004881003330a20103000b0093371203a0026eb4c32c04008dd6986480800991929998648099b880010021323232323232337606ea0cdc019b833370466e00cdc101080200299b813370403e00200466e080100052002375066e0ccdc119b803370401600200403a66e04cdc100f8008011bad30d001002375a619c020026666660fa03c0380040020c80c46eb4c33404008dd698658080099999983c80200280d80c83082f8a9998648099b880020011323232323232337606ea0cdc019b833370466e00cdc100f80200299b813370404200200466e080100052002375066e0ccdc119b803370401400200403a66e04cdc10108008011bad30d001002375a619c020026666660fa03803c0040020c80c46eb4c33404008dd698658080099999983c80280200c80d83082f899bb0375066e0806c064dd400119b833370400802c03066e0ccdc100100a80ca99986300a9998630099b89480000044cdc4a400000429404cdc42400066e000040085282999862809984d80806805899b810023370003a03620046661360205c01000c6661340205a0160126eb8c31c04004c31c04008dd7186280800985e8082c9bae30c30100130c301002375c6182020026172020ae6eb8c2fc04004c2fc04008dd7185e80800985a8082a9bad30bb0100130bb01002375a6172020026172020046eb4c2dc04004c2dc04008dd6985a80800985a808119bad30b3010221616375a61640200261540200c2a6661580266e1d200a00113232323253330b00153330b001337109000001899b88480000045280a9998580099983e8080070108991919191919191919191919191919191919191919191919191919191919191919191919299986a00a99986a00a99986a0080708050a50100614a02661b0026ea0014cc36004dd40021986c009ba83370066e0408003c008cc36004dd419b8001e002330d801375000297ae016375a61aa020046eb4c34c04004c94ccc34804cdc3a4000002264646466ec0dd4199998420080e99b82025023021375a61b4020026eb4c36804c36c04004dd418438099b8200600530d20100130d80100130d0010661337609801010000375003461a0020ca66e0407801ccdc080f803a99986700998520080a0090a9998670099b870033370000c048266e1c0080145280a99986700a9998670099b8700102413370e00600c29404cdc38010028a503330a401032489004881003330a30103100e00c3330a20103001100f53330ca013371203a004266e2406c0045281bad30cb01002375a61920200266660f402e02a00402666e21200000133309c0102f003001375c6192020026192020046eb8c31c04004c2fc0416cdd71862808009862808011bae30c30100130bb01059375c6182020026182020046eb8c2fc04004c2dc0415cdd6985e80800985e808011bad30bb0100130bb01002375a6172020026172020046eb4c2dc04004c2dc04094dd6985a808120b0b1bad30b40100130b401002375a61640200261540200c2a6661580266e1d200c00113232323253330b0013371090000008a9998580099983e8080070108999999999911111111191919191919191919191919191919191919191919191919191919191919299986b80a99986b80a99986b8080588020a50100114a02a6661ae0204e2661b6026ea0078cc36c04dd419b8101c008330db01375066e00cdc080d0060031986d809ba83370003000c661b6026ea00152f5c02661b6026ea0cdc080f0041986d809ba801c330db01375066e00cdc080d0060031986d809ba83370003000c661b6026ea00152f5c02ca6661ac026615802024020266e1c004cdc00110038a99986b0099b8700100713370e0440042940ccc2b0040e804403cccc2ac040e5220100488100337120480086eb4c35004008dd69869008009929998688099b87480000044c8c8c8cdd81ba833333083010133370403603202e6eb4c36404004dd6986c80986d008009ba830860100630d10100130d70100130cf0101c1337609810100003750020619e020366eb4c34404008dd6986780800991919191919bb0375066e08008004dd4299986900811099b800033333309e0100200100401c01b1337000086666613c0200200400603803666e04058008cdc080b8011bad30d101002375a619e0200266661000202802400402066e2120000013330a201035003001375c619e02002619e020046eb8c33404004c31404050dd71865808009865808011bae30c90100130c10100153330c20101210101011375a618c02002618c020046eb4c31004004c31004008dd69861008009861008011bad30c00100130c001002375a617c0200264a6661620266e1d200000114a22940c2bc0400c1381301280181101201180905858dd6985a00800985a008011859008009855008030a9998560099b87480380044c8c8c8c8c8c8c8c8c8c94ccc2d8054ccc2d8054ccc2d804cdc42400000e266e21200000714a0266e21200000314a0264646464646464646464646464a66618602a66618602002264646464646464a6661940266e1d200230c90100113232323232323232323232323232323253330da013370e9007186c80802899191919191919191919299987200a99987200a99987200a99987200a99987200a99987200a99987200a99987200a99987200a99987200a9998720099b8f01907613375e08c02e29404cdd782200a8a5013375e08402629404cdc381e0068a5013370e07401629404cdd78200088a5013375e06e01229404cdc381a8038a5013370e06600a29404cdc399b810314800800c528099b8702f00114a06eb4c3a004004c3a004008dd69873008009873008011bad30e40100130e401002375a61c40200261c40200461c00200261b00200a2c6eb4c37804004c37804008dd6986e00800986e00801186d00800986d00801186c00800986c00801186b00800986b00801186a00800986a008011869008009865009984d008398029bae30d00100130c8010011630ce0100130c60100430cc0100130cc0100130cb0100230c90100130c1010341333090010230210341330c70137500166618e026ea0024cc31c04dd400399863809ba8005330c701375000697ae0163370e90011861809baa30c70100130c701002375a618a02002618a020046eb4c30c04004c30c04008dd69860808009860808011bad30bf0100130bf01002375a617a02002646464646464646464646464646464646464646464646464646464646464646464a6661b002a6661b00266e21200000213371204600429404c8c8c8c8c8c94ccc378054ccc3780402c4004528099299986f80814899871809ba833700050012661c6026ea0cdc081300399871809ba8024330e3013750044661c6026ea0080cc38c04ccc37c04005300103d87a80004c0103d87980004bd70099871809ba83370205000e661c6026ea0cdc001300499871809ba8024330e3013750044661c6026ea0080cc38c04ccc37c0400530103d87a80004c0103d87980004bd70299986f0099b8848000cdc0815a4004266e240a401c5280b299986e80998598080a0090a99986e8099b870013370000c008266e1c008cdc00018028a50153330dd01330b30101000e153330dd013370e00200c266e1c008cdc000199b8200500414a0264a6661bc02a6661bc0266e1c00801c4cdc380199b8000400614a0266e1c01400452819985a00821245004881003330b3010410130113330b20104000e00c3330b10104400d00b3370066e080c4cdc08132400405e66666148020260220040e00dc2c6eb4c36404008dd6986b80800a99986a8099b890030011337606ea000d30010100001337606ea0004dd419b810030013232323253330d80133710900000088008b19b830020013370404a00466e04cdc119b8202600100e3370466e080901ac040cdc083503619b88480000054ccc34804cc2a00402401c4cdc080080108009998540081d80400319b803370405003a04c6eb8c35004004c35004008dd71869008009865008049bae30d00100130d001002375c619c02002618c0200e6eb4c33004004c33004008dd6986500800986500801186400800986400801186300800a999860008050998620082f198620082e19862009ba8009330c401375000e97ae01330c40105c330c40105e330c401375000e66188026ea00252f5c06eb4c31004004c31004008dd69861008009861008011bad30c00100130c001002375a617c02002617c020586eb4c2f0040acc94ccc2dc04cdc3a40000022944528185a808048b1bad30ba0100130ba01002375a6170020026170020046eb4c2d804004c2d804008dd6985a00800985a0080118590080098550080309931855008031855008028b1bad30af0100130af01002375a615a02002615a02004615602002615602004615202002615202004614e02002614e02004614a02002614a02004614602002613602002660d40860086eacc28004004c28004004c25c04028c27404004c27404008dd5984d80800984d80800984900800984c00800984c00800984780802184b00802984a00802184a008021849008019bad308d01001308d01002375a6116020026116020046eb4c22404004c22404008dd69843808009843808059bad30850100a375a6108020026108020046eb4c20804004c20804004c2040401c5858cc1380888c8c94ccc1f4ccc1f4cdd7800806a504a226660fa66ebc0040852825114a061020200260f20026466600200200497ae0222533307f0021001133300300330820100233223308201305b3305c007002001375a61020200400260480366609604046464646464646464a6661000266e1d200200113371e6eb8c21404c1f8008048528183f000984180800983d800984080800983c800983f800983f800983b0009bac307b001307b002375860f200260f20046eb4c1dc004c1dc008c1d4004c1d4008dd718398009839801183880098388011bad306f001306f002375a60da00260da00460d600260d600460d200260d200460ce00260be66666606c00400201801600c01060c400460c00026464a6660c660cc0042646464646464646464a6660d860de004264a6660da60e0002264a6660dc60e2002266ec003000c58cc0f80488cdd798381834983818348008028b1981e809119baf306f3068306f3068306f3070306800100416306d0013303b00f23375e00860da60cc00260d600260c600260d200260c200260ce00260ce00260bc0022c60c80026606400e466ebc014c190c174004c004004894ccc16000452f5c026464660b66ea0008cc010010c8cc004004008894ccc17000452f5c026464a6660b66660b666e1c0080192825113305f37500046600800800226600800800260c00046eb4c178004c170008dd6982d000911111111111919191919191919191919191919191919191919191919191919191919191919299983ea99983ea99983e80288018a50100114a02a6660fa052266102026ea0cdc001000319840809ba83370203c00866102026ea0070cc20404dd400d19840809ba80184bd70099840809ba83370204000866102026ea0cdc000f00319840809ba801c3308101375003466102026ea00612f5c02ca6660f8660a401200e266e1ccdc0001812000899299983e99b8700400213370e00204a2940ccc14c0a5220100488100333052028008006301e0013333304500e00c00202001f337109000000a99983b99826804003099b810013370004003e200266609a04800e00a6eb8c1e8004c1e8008dd7183c00098380049bae30760013076002375c60e800260d800e6eb4c1c8004c1c8008dd698380009838001183700098370011836000a99983300909983500899835008198351ba80093306a375000e97ae013306a0103306a0113306a375000e660d46ea00252f5c06eb4c1a8004c1a8008dd6983400098340011bad30660013066002375a60c800260c80066eb4c188008888894ccc158cdc4802a400029000099299982b99b880060011323232533305a33710900000088008a400066e0c008004cdc019b823370200600800466e0801001ccdc119b820030043370200200c2900018040021111111919191919bb0375066e04c030cdc0980700099b823370400600a66e04014018004dd419b820023370200a00c66e08cdc099b824801001001400ccdc12400866e0001c014cdc119b8248020cdc000300219b813370400c601600a66e08cdc100380280219b823370000a0060084444446466ec0dd419b823370400a00200c6ea0cdc019b823370400400800e66e08014004cdc08008011299982799b88001480005854ccc13ccdc3800a4000290000a99982799b8700148008520021533304f3370e00290020a400426464666002002006004444a6660a666e200040084ccc00c00c004cdc199b803370600a0020029002080119b8033706002900224004444466ec0dd419b83337040040080026ea0cdc199b8200200300123370400200209008802001a00205e07e02c0282c6eacc140004c140004c13c008dd61826800982680118258009825800982500098248011bab30470013047001304600237586088002608800260860046eb0c104004c0e4088dd6981f800981f8011bac303d001303d002303b0013033027153330353370e900100b899191919191919191919299981fa99981f99b8700200113371290020008a501323232323232323232323232323232323253330503333333302c01000600401a04a01804400a13333333333232323232323222222222232323232323232323232323232323232533307330760021323253330753078002132323232323232323232323232323232323232323232323232533308b01533308b01533308b01533308b01337109000002099b884800000852808008a5013375e04e01029404c94ccc23004cdc3a4020002264646464a6661200266e21200000113232323232323232323232323232323232323232323232323232323232323253330af013371204000226464a666162020022944594ccc2c004cc2180401c0144cdc399b8000202700113253330b1013370e006004266e1c0040a05281998438081a245004881003330860103300600416333305a001480001380854ccc2b404cc20c040200184cdc080099b80026024100133308301035007005375c6160020026160020046eb8c2b804004c29804014dd71856008009856008011bae30aa0100130a2010023253330a4013370e9000000880188029851008051929998518099b874800000440204018c28404030c29804004c29804008c29004004c2700402cc28804004c28804008c28004004c26004020c27804004c27804004c25404018c26c04004c26c04004c24804010cc0f40cccdc09832819a40046607806490001981d80219b81306300448008cc0e800d200016375a6128020026128020046eb0c24804004c2280401c5281845008030b19982b80580480c9bad308e01001308e01002375a611802002611802004611402002611402004611002002611002004610c02002610c0200461080200261080200260f6660960440086eacc20404004c20404004c1e0024c1f8004c1f8008dd5983e000983e0009839800983c800983c80098380018b183b0009982200b119191919299983a99983a99baf0030184a09444ccc1d4cdd78008042504a22940c1e4004c1c4004c1dc004c1bc00458c1d0004cc1080548c8c8c8c8c8c8c8c94ccc1dccdc3a4004002266e3cdd7183e183a8010070a503075001307a00130720013078001307000130760013076001306d0013072001306a00130700013070002375c60dc00260dc00260da00260d800260d600460d200260d200260d000260be660160029000191919191929998341835801099191919191919299983619b87303e3304001323375e60e460d660e460d660e460e660d60020040142a6660d866e1cc0f8cc1000488cdd7983918359839183580080100509919980080080680611129998390010a9998390008a5eb80584c8c94ccc1d000c52f5c02660ea64646464646464646464646464646464a66610202a6661020266ebc02c0184c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc294054ccc294054ccc294054ccc294054ccc294054ccc294054ccc294054ccc29404cdd7811808899baf02100f14a0266e1c07c034528099b8701d00b14a0266e1c06c024528099b8701900714a0266e1c05c014528099b8f01500314a0266ebc04c0045281854808009854808011bae30a70100130a701002375a614a02002614a020046eb4c28c04004c28c04008dd69850808009850808011bad309f01001309f01002375a613a02002613a02004613602002613602004613202002612202026612e02002612e020046eb8c25404004c25404008dd69849808009849808011bad309101001309101002375a611e02002611e020046eb4c23404004c23404008dd6984580800984580801184480800984480801184380800983f8010a50133333305601201002a0290020261633058025002330570240063083010013083010013082010023080010013078009307e001307e001307d002307b00130730013079001307900130700033076003333005005001307700330760033074002161630700013068001306e0013066001306c001306c00130630011630690013303700a23375e01060d260c400260680046601e0044660180100026601c0044660160100026002002444a6660b066e2520140011333003003305e305e305e305e305e305e305e305e305e305e00233702002900a099803801000980080091111299982d801080189919299982e80188028991919199998050050008008020011919191919191919191919191919191919191919191919191919299983b19baf01700313232325333079337109000012899299983d19b884800000454ccc1e8c94ccc1eccdc3a40000022a6660f666e1ccdc0007813806099b873370201a004014294054ccc1eccdc399b8100f00200c13370e66e0003409c028528183c80288008b0b1999982280100081280c00b0b1bad307a002375a60f000264a6660ee66e1d20000011337606ea002cdd4004899bb037500126ea002cc1d400458c1e8004c1e8008c1e0004c1c0060dd6983b000983b0029bad3074004375a60e600260e60086eb4c1c400cdd6183800098380011bac306e001306e001306d001306c001306b001306a002375a60d000260d00046eb4c198004c198008c190004c190004c18c004c168010c184010c17c00cc17c00cc17400888c8cc00400400c894ccc16400452f5c02660b460066eb4c16c004cc008008c170004c0040048894ccc14ccdc4800a4000260b0004266600600660b200466e04005200204c04801000d00103301a01601416375660a800260a800260a60046eb0c144004c144008c13c004c13c004c138004c134008dd59825800982580098250011bac3048001304800130470023758608a002607a04c2c601c004601a0066eb0c104004c104008dd6181f800981f8011bad303d001303d002303b0013033027153330353370e900200b89925130330271324a2606604e44444646466e0ccdc100080319b803370400600e00266e08004010cdc0800801111191919191919299981e299981e19baf009005100114a0294458c94ccc0f0cdc3a40000022646464a66607e66e1d2000001161533303f3370e9001000899b8f375c6088607a00a004266e3cdca1bb33044303d005002303d004375c60840026074010266ebc009300103d8798000303a007303f001303f001303e002303c00130340012232320023253330363370e900000089919191919191919191919191919299982398250010991919191924c64a66609266e1d200000113232323253330503053002132498c07000c58dd698288009828801182780098238050a99982499b87480080044c8c8c8c94ccc140c14c0084c926301c00316375a60a200260a2004609e002608e0142a66609266e1d2004001132323232323253330523055002132498c07801458dd6982980098298011bad30510013051002304f001304700a153330493370e90030008991919192999828182980109924c60380062c6eb4c144004c144008c13c004c11c02854ccc124cdc3a401000226464a66609c60a20042930b1bad304f001304700a153330493370e9005000899191919299982818298010a4c2c6eb4c144004c144008dd6982780098238050a99982499b87480300044c8c8c8c94ccc140c14c0084c926301c00316375a60a200260a2004609e002608e0142a66609266e1d200e00113232323232323232323253330563059002132498c08802458dd6982b800982b8011bad30550013055002375a60a600260a60046eb4c144004c144008c13c004c11c02854ccc124cdc3a4020002264646464a6660a060a6004264931981b801919299982799b87480000044c8c8c8c94ccc158c1640084c8c9263023002304000316305700130570023055001304d00216304d00116375a60a200260a20046eb0c13c004c11c02858c11c024c0d0028c0d402cc0cc030c0c803458dd6982400098240011bad30460013046002304400130440023042001304200230400013040002303e001303e002303c00130340021630340013300f00200123253330333370e90000008a99981b18188010a4c2c2a66606666e1d200200115333036303100214985858c0c4004c004004894ccc0d000452000133700900119801001181b80098008009129998190008a4000266e01200233002002303500122323300100100322533303300114bd70099192999819180280109981b00119802002000899802002000981b801181a800911111191919191919191919191919191919191919191919191919191919191919191919191919191919299982c191919191919191919191919191919191919191919191919191919191919299983b299983b299983b299983b299983b19baf01d00e13375e03601829404cdc380b0038a5013370e02800a29404cdc78090018a5013375e0200022940c1e8004c1e8008dd7183c000983c0011bad30760013076002375a60e800260e800260e600260e400260e200460de00260de00460da00260ca03060d600260d60046eb8c1a4004c1a4008dd6983380098338011bad3065001306500130640013063001306200230600013060002305e001305602913232323232323232323253330623370e66607205606a06890010a99983119b87333039028035034480084c8c8c8cdd2a4000660d204e660d204a660d2008660d26ea0074cc1a4dd400d9983480b998349ba90193306903033069375066e04ccc0f00ac0e0014ccc0f00b80e0014cc1a4dd3998349833000998349ba833303c02e008006330693750046660d26ea007ccc1a4dd4010a5eb80cc1a4dd3998349833800998349ba833303c02b008006330693750024660d26ea0038cc1a4dd400825eb812f5c0a6660c866074016012266ec0dd419b81002482026fb808dd419b81001482026fb8084cdd81ba8002375000266607405201401066607205601200e2c2c66e952000330653752068660ca6ea40052f5c060726607460726607400e00a6072660740060026eb8c190004c190008dd71831000982d00e1bae30600013060002375c60bc00260ac0342c6eb4c170004c170008dd6982d000982d0011bad305800130580013057001304e0013302701f01330530013053002375c60a200260a20046eb4c13c004c13c008dd6982680098268011bad304b001304b002375a609200260920046eb4c11c004c11c008c114004c114008c10c004c0ec038c104004c104008dd5981f800981f800981b0061bab303c001303c002303a001303200130380013038001302f00622533302c3371e0049110013371e0029110014a044464664464a66606066e1d200200110021375a606a605c006605c00464a66605c66e1d200200114c103d87a8000132323300100100222533303400114c103d87a800013232323253330353371e014004266e95200033039375000297ae0133006006003375a606c0066eb8c0d0008c0e0008c0d8004dd5981998160011816000a40006601a006004446464004602e0026600a00400246e4c00488cdc500100091180219299981419b8748000004530103d87a8000153330283370e900100089919198008008029129998170008a6103d87a8000132323232533302f3371e00e004266e952000330330014bd7009980300300198180019bae302e00230320023030001375c605a604c004266e9520003302c302d30260024bd70181300091111111299981619299981819198008008011129998190008a5eb804c8ccc888c8cc00400400c894ccc0e0004400c4c8ccc888cc0f4dd39981e9ba90093303d37520066607a6ea00092f5c00026eb8c0dc004dd6981c00099801801981e001181d0009bae30310013756606400266006006606c0046068002294458c8cc004004008894ccc0c400452f5bded8c0264646464a66606466e3d2201000021003133036337606ea4008dd3000998030030019bab3033003375c6062004606a00460660022a666058646464646464646464646464a66607066e1d2000303700113232533303a533303a533303a323300100101522533303f00114a026464a66607c66e3c00801452889980200200098218011bae304100113371200a01029404cdc480419b8000601014a0294458dd7181f000981b0008b181e000981a0079bad3037002375a606a00264a66606866e1d20023033001132323253330373370e9001181b000899bb037500046078606a0022c602c60686076607860680226eb4c0e8004c0c800458c04cc0c4c04cc0c4038c8c94ccc0dcc0e80084c8c94ccc0d8cdc3800a400426464666002002900024000444a66607466e1c00801040044c94ccc0ed4ccc0eccdc3801a4000266e1c005205a14a0266e08ccc010010cdc0001a400400490008a99981da99981da99981d99b8800148180528899b8800148180528899b88337009030240240022c266600800866e0000d20023370066e08009201433702002903019b8e006002371a0042c6eb4c0dc008dd7181a8008b181c000999119299981a99b874800800440084dd5981d181980198198011980980080525eb7bdb180dd5981b000981b00098168009819800981980098151804998050040018a511616253330243370e900018118008981498110008b180080091129998138010a60103d87a80001323253330263370e0069000099ba548000cc0a80092f5c0266600a00a00266e0400d2002302b00330290022302600122323300100100322533302600114c103d87a800013232323253330273371e00e004266e9520003302b374c00297ae0133006006003375660500066eb8c098008c0a8008c0a0004c074040c088004c06800458c080004c080008c078004c058024526163253330183370e90000008991919191919299981098120010991924c6601200846eb4004c03001458dd6981100098110011bac30200013020002301e001301600a153330183370e90010008991919191919191929998119813001099191924c6601800646eb4004cc02c0108dd680098070038b1bac302400130240023758604400260440046eb4c080004c080008c078004c05802854ccc060cdc3a400800226464a66603a60400042930b1bad301e001301600a153330183370e9003000899191919299980f98110010a4c2c6eb4c080004c080008dd6980f000980b0050b180b00491191980080080191299980e8008a4c2646600600660420046006603e0026002010464a66602c66e1d20000011323232323232323232323232323232323232533302b302e0021323232498c94ccc0accdc3a400000226464a66606060660042649319299981719b87480000044c8c8c8c8c8c8c8c94ccc0e4c0f00084c8c9263026002302400316303a001303a00230380013038002375a606c002606c0046eb4c0d0004c0b000858c0b000458c0c4004c0a401054ccc0accdc3a40040022a66605c60520082930b0b1814801980b008180a8088b181600098160011bae302a001302a002375a605000260500046eb4c098004c098008dd6981200098120011bad30220013022002375a60400026040004603c002603c004603800260280042c6028002464a66602a66e1d2000001132323232533301c301f002149858dd7180e800980e8011bae301b001301300216301300123253330143370e9000000899191919299980d980f0010991924c64a66603466e1d200000113232533301f3022002132498c94ccc074cdc3a400000226464a666044604a0042649318078008b1811800980d8010a99980e99b87480080044c8c8c8c8c8c94ccc098c0a400852616375a604e002604e0046eb4c094004c094008dd69811800980d8010b180d8008b1810000980c0018a99980d19b874800800454ccc074c06000c52616163018002300800316301c001301c002301a001301200216301200123253330133370e900000089919299980c180d8010a4c2c6eb8c064004c04400854ccc04ccdc3a40040022a66602c60220042930b0b1808800919299980919b87480000044c8c94ccc05cc06800852616375c603000260200042a66602466e1d2002001132325333017301a002149858dd7180c00098080010b18080009bad001375c0026eb8004dd70009bae001230053754002460066ea80055cd2ab9d5573caae7d5d02ba157441", + "hash": "708d569ccc0d42b31d6f24776a644997961fda00ed4f951061795fcf" } ], "definitions": {